ASP.NET MVC и поставщик членства ASP.NET - глобальная обработка аутентификации - PullRequest
0 голосов
/ 01 октября 2009

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

Каков наилучший способ проверки действительной аутентификации в глобальном масштабе? Я в основном хочу перенаправить на главную страницу или страницу входа, если пользователь не прошел аутентификацию на всех моих страницах.

-anders

Ответы [ 3 ]

3 голосов
/ 01 октября 2009

То, как мы это делали, во времена MVC Preview 4 или около того, заключалось в создании нового класса «BaseController», который затем наследует каждый другой контроллер. Этот класс BaseController использует атрибут Authorize

[Authorize]
public class BaseController : Controller
{
...
}

Остальные наши контроллеры унаследовали от этого

public class HomeController : BaseController
{
...
}

Мне уже несколько месяцев не приходилось работать с MVC, поэтому я не могу сказать, применимо ли это до сих пор, поэтому будьте осторожны ...

1 голос
/ 01 октября 2009

это может быть немного сложнее, но другой подход может заключаться в том, чтобы поместить пользовательский модуль HTTP в конвейер для перенаправления запроса, если пользователь не аутентифицирован.

1 голос
/ 01 октября 2009

Вы должны просто аннотировать любое действие, которое вы хотите аутентифицировать, с помощью [Авторизовать] и, при желании, с некоторыми необходимыми ролями:

[Authorize()]
public ActionResult Index() {
  ...
  return View();
}

Это включает в себя действие вашей домашней страницы, если вы хотите. Несанкционированные попытки всегда будут перенаправлены на страницу входа.

...