Проблема:
У меня есть приложение 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.