Аутентификация форм — неотъемлемая часть ASP.NET, и как таковая, используется во множестве Web-приложений и на множестве Web-сайтов. Когда так много людей применяют одну и ту же систему, все недостатки очень быстро выявляются, публикуются и разрешаются. До тех пор, пока вы вовремя устанавливаете все заплаты, можете считать себя в безопасности. С другой стороны, если вы создаете собственную систему аутентификаций на базе cookie-наборов, то лишаетесь преимуществ такого массового тестирования. И первый случай обнаружения уязвимости будет связан со взломом вашей работающей системы.
Все типы аутентификации ASP.NET являются частью общего согласованного каркаса. Аутентификация форм полностью интегрирована с этим каркасом безопасности. Например, она наполняет объект контекста безопасности (IPrincipal), как и должна это делать. Это позволяет легко настроить поведение аутентификации форм но своему усмотрению.
Наиболее важная часть каркаса аутентификации форм — это FormsAuthenticationModule, который является классом IHttpModule, обнаруживающим мандаты аутентификации форм, присутствующие в запросе. Если такой мандат недоступен, а пользователь запросил защищенный ресурс, то запрос автоматически перенаправляется на страницу регистрации, указанную в файле web.config, еще до того, как исполняющая система даже просто коснется этого защшценного ресурса.
Если мандат присутствует, модуль автоматически создает контекст безопасности, инициализируя свойство HttpContext.Current.User экземпляром GenericPrincipal по умолчанию, который включает экземпляр FormsIdentity с именем текущего зарегистрированного пользователя. В основном вам не приходится работать с этим модулем напрямую. Ваш интерфейс к модулю состоит из классов, перечисленных в табл. 20.1, которые определены в пространстве имен System.Web.Security.
Большей частью вам придется использовать классы FormsAuthentication и FormsIdentitу, которые представляют успешно аутентифицированного пользователя вашего приложения. Далее будет показано, как использовать аутентификацию форм в ваших приложениях.
предыдущая следующая страница вначало главы оглавление
833