Базовый класс страницы эквивалентен в ASP.NET MVC2?Исходя из фона веб-форм - PullRequest
1 голос
/ 20 июня 2010

Проблема:

У меня есть приложение webforms, где каждая страница наследуется от BasePage.cs У меня также есть другой класс AuthenticatedBasePage.cs, который наследуется от BasePage.cs

BasePage.cs содержит некоторый код, который определяет, установлен ли файл cookie для проверки подлинности с помощью форм, и, если да, устанавливает логический флаг IsAuthenticated и объект MyAppUser (имеет только такие свойства, как имя, возраст, пол), что означает каждую страницу на сайт может видеть, вошел ли пользователь, просматривающий страницу, в систему или нет, и если это так, прочитайте значения MyAppUser.

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

Я хотел бы иметь аналогичную настройку в моем приложении MVC2. Я довольно много читал о том, что не должен ссылаться на HttpContext в моем BaseController.cs (от которого наследуются все мои контроллеры), так как это означает, что я не могу выполнить его модульное тестирование. Мой первый вопрос: как я могу сделать объекты IsAuthenticated и MyAppUser доступными для каждой страницы? Во-вторых, как мне создать страницы, к которым имеют доступ только аутентифицированные пользователи, и, если они не аутентифицированы, они перенаправляются на страницу входа с установленной переменной запроса returnurl?

Большое спасибо, A.

P.S. Я не использую MembershipSchema, я только использую метод FormsAuthentication.SetCookie.

1 Ответ

0 голосов
/ 20 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...