Использование фильтров действий для входа пользователя в Asp.NET MVC? - PullRequest
1 голос
/ 10 апреля 2010

Я недавно создал сайт с использованием Asp.Net.

Я выбрал способ входа в систему через базовый класс 'UserAwareController', который расширяют все контроллеры. Он содержал ссылку на UserRepository и раскрывал защищенный метод GetCurrentUser(), к которому могут обращаться конкретные контроллеры.

Весь процесс показался мне немного странным. Является ли Action Filters хорошей альтернативой? Каковы его преимущества? Есть что-то еще, что я мог бы упустить?

Ответы [ 3 ]

0 голосов
/ 10 апреля 2010

Я бы порекомендовал вам использовать провайдер членства для хранения и извлечения информации о пользователях. Шаблон ASP.NET MVC по умолчанию имеет пример. Это видео также стоит посмотреть.

0 голосов
/ 11 апреля 2010

Композиция всегда лучше, чем наследование. В вашем случае также может возникнуть необходимость, чтобы ваше представление также нуждалось в знании пользователя, например отображаемое имя / статус аутентификации и т. Д. И т. Д. Просьба проверить следующую статью, где я подробно описал, как управлять этими вид общих услуг.

http://weblogs.asp.net/rashid/archive/2010/03/18/maintaining-shared-service-in-asp-net-mvc-application.aspx

0 голосов
/ 10 апреля 2010

Я не вижу ничего плохого в вашем нынешнем подходе, кроме случаев, когда вы сделали UserAwareController только для этой цели. Но использование Action Filters также является хорошей идеей для добавления пользователя к вашему действию или контроллеру. Лично я использовал фильтры Action в своем проекте. Мне нужно, чтобы в моих действиях был доступ с правами администратора, я ввел пользователя с помощью Action Filter.

Как правило, Фильтры Действий показывают потенциал, когда вам нужно сделать что-то конкретное перед выполнением действия или после выполнения действия. Фильтр действий представляет собой комплексную проблему для вашего метода действий.

...