Общие сведения о проверке подлинности форм ASP.NET

Visual Studio 2010

Обновлен: Ноябрь 2007

Проверка подлинности с помощью форм позволяет проверять подлинность пользователей с помощью собственного кода и затем предоставлять маркер проверки подлинности в объекте Cookie или в URL-адресе страницы. Проверка подлинности с помощью форм участвует в жизненном цикле страницы ASP.NET через класс FormsAuthenticationModule. Можно получить доступ к сведениям и возможностям проверки подлинности форм с помощью класса FormsAuthentication.

Чтобы использовать проверку подлинности форм, следует создать страницу входа, собирающую учетные данные от пользователя и включающую код для проверки подлинности учетных данных. Обычно приложение настраивается для перенаправления запросов на страницу входа в систему при попытке доступа к защищенному ресурсу, например к странице, которая требует проверки подлинности пользователя. Если учетные данные пользователя являются допустимыми, можно вызвать методы класса FormsAuthentication и перенаправить запрос назад на исходно запрошенный ресурс с билетом соответствующей проверки подлинности (файл Cookie). Если перенаправление нежелательно, можно просто получить или задать файл Cookie проверки подлинности форм. На последующие запросы обозреватель пользователя передает файл Cookie проверки подлинности с запросом, который затем обходит страницу входа.

Настроить проверку подлинности в формах можно с помощью элемента конфигурации authentication. В простейшем случае имеется страница входа. В файле конфигурации можно указать URL-адрес для перенаправления непроверенных запросов на страницу входа. Затем предстоит определить допустимые учетные данные либо в файле Web.config, либо в отдельном файле. В следующем примере показан раздел из файла конфигурации, который определяет страницу входа и проверку подлинности для метода Authenticate. Пароли зашифровываются с помощью метода HashPasswordForStoringInConfigFile.

<authentication mode="Forms">
   <forms name="SavingsPlan" loginUrl="/Login.aspx">
      <credentials passwordFormat="SHA1">
         <user name="Kim"
               password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
         <user name="John"
               password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
      </credentials>
   </forms>
</authentication>

После успешной проверки подлинности модуль FormsAuthenticationModule устанавливает в качестве значения свойства User ссылку на пользователя, прошедшего проверку подлинности. В следующем примере показывается, как прочесть удостоверение пользователя, прошедшего проверку подлинности с помощью форм, программным способом:

String authUser2 = User.Identity.Name;

Удобный способ проверки подлинности с помощью форм состоит в использовании членства ASP.NET и элементов управления входа ASP.NET. Членство ASP.NET позволяет хранить сведения о пользователе и управлять ими, а также содержит методы для проверки подлинности пользователей. Элементы управления входа ASP.NET работают с членством ASP.NET. Они инкапсулируют логику для запроса учетных данных пользователей, проверяют подлинность пользователя, восстанавливают или изменяют пароли и т. д. В результате членство ASP.NET и элементы управления входа ASP.NET обеспечивают уровень анонимности через проверку подлинности с помощью форм. Эти возможности заменяют большую часть или всю работу, которая обычно выполняется, чтобы использовать проверку подлинности форм. Дополнительные сведения см. в разделах Управление пользователями путем объединения их в группы и Общие сведения об элементах управления входом ASP.NET.

Можно также получить доступ к проверке подлинности форм в качестве службы Windows Communication Framework (WCF) с помощью службы проверки подлинности ASP.NET. Служба проверки подлинности дает возможность использовать проверку подлинности форм из любого приложения, которое может отправлять и получать сообщения в формате SOAP. Служба проверки подлинности учетных данных пользователя принимает и возвращает файлы Cookie проверки подлинности форм.

Например, пользователи могут входить из приложения, которое не было разработано в .NET Framework. Дополнительные сведения см. в разделе Общие сведения о службе проверки подлинности Windows Communication Foundation.

Показ: