MVC: Каков наилучший способ сохранить ссылку на текущего пользователя в ваших контроллерах? - PullRequest
2 голосов
/ 19 мая 2010

Я приложение, где все привязано к текущему подключенному пользователю. До сих пор почти все мои действия вызывали мой метод UsersService.GetUser (guid), который возвращает пользователя и все связанные с ним данные. Это работает нормально, но, сказав, что колл в каждом действии действительно беспокоит меня.

Подумав, я решил пойти с базовым контроллером, который объявляет что-то вроде

protected UserProfile CurrentUser
    {
        get { return UsersService.GetUser((Guid)Membership.GetUser().ProviderUserKey); }
    }

А потом мои контроллеры наследуют от базового контроллера и используют CurrentUser вместо вызова службы при каждом действии. Тем не менее, мне кажется, что я просто прячу грязь под ковром.

Так что, пожалуйста, если у вас есть лучший способ, поделитесь.

1 Ответ

1 голос
/ 20 мая 2010

Для меня то, что ты делаешь, имеет смысл для меня. Использование базового контроллера является хорошей практикой. Одна вещь, которую можно расширить, это поместить пользователя в объект сеанса, чтобы вам не нужно было нажимать на БД при каждом запросе.

...