Событие AuthenticateRequest возбуждается объектом HttpApplicatton, когда запрос нуждается в аутентификации. Как только пользователь аутентифицирован (обычно предъявив некоторое удостоверение — такое как cookie-набор с информацией о себе), следующий шаг — убедиться, что информация, идентифицирующая пользователя, полностью готова для остальной части цикла обработки страницы. Чтобы достичь этого, нужно создать новый объект с пользовательской информацией и присоединить ее к свойству User текущего HttpGontext.
Событие AuthorizeRequest возбуждается после того, как пользователь аутентифицирован в событии AutheticateRequest. Модули авторизации используют AuthorizeRequest для проверки того, авторизован ли пользователь для доступа к запрошенному ресурсу.
Аутентификация реализуется в ASP.NET через специализированные модули HTTP, как показано на рисунках 19.9 и 19.10. Вы выбираете модуль аутентификации, который хотите использовать, в элементе <authentication> конфигурационного файла web.config. Bсe модули аутентификации реализуют интерфейс IHttpModule, который предоставляет доступ к событиям приложения (как описано в главе 5). Это позволяет им обрабатывать событие HttpApplication.AuthenticateRequest. Каждый модуль также представляет собственное событие Authenticate, которое вы можете обработать в global.аsах.
На заметку! Элемент <authentication> может быть использован только в файле web.config, находящемся в корневом каталоге приложения. Попытка использовать его в подкаталоге вызовет ошибку. Это значит, что для каждого приложения может быть определен только один тип аутентификации. Однако в разных подкаталогах могут быть определены разные правила авторизации.
ASP.NET представляет три центральных модуля аутентификации:
В следующих разделах кратко описаны все эти модули.
Модуль FormsAuthenticationModule использует аутентификацию с помощью форм, что позволяет вам разрабатывать собственные страницы регистрации, писать собственную логику аутентификации, при этом полагаясь на ASP.NET в плане отслеживания информации о пользователе и роли, используя шифрованные cookie-наборы. Модуль FormsAuthenticationModule активен, когда элемент <authentication> установлен следующим образом:
<authentication mode="Forms" />
В главе 20 аутентификация с помощью форм описана более подробно. (Вы также можете использовть аутентификацию форм с API-интерфейсами Membership и Roles, которые мы представим позднее в этой главе и раскроем в деталях в главе 20).
предыдущая следующая страница вначало главы оглавление
821