Служебные программы проверки подлинности с помощью форм
Обновлен: Ноябрь 2007
Для управления проверкой подлинности с помощью форм можно использовать статические методы класса FormsAuthentication. Эти методы перечислены в приведенной ниже таблице.
Метод |
Описание |
---|---|
Осуществляет попытку проверки учетных данных в настроенном хранилище при наличии предоставленных учетных данных. |
|
Возвращает экземпляр класса FormsAuthenticationTicket, которому был передан зашифрованный билет проверки подлинности, полученный от объекта cookie HTTP. |
|
Получив FormsAuthenticationTicket, формирует строку, содержащую зашифрованный билет проверки подлинности, подходящий для использования объектом cookie HTTP. |
|
Извлекает зашифрованный файл cookie проверки подлинности в виде экземпляра HttpCookie. Этот файл cookie не добавляется в коллекцию Cookies. |
|
Возвращает URL-адрес перенаправления для запроса, который вызвал переадресацию на страницу входа в систему. |
|
При наличии пароля и строки, идентифицирующей тип хэширования, синтезирует из библиотеки DLL хэш-пароль, подходящий для хранения в файле конфигурации. |
|
Инициализирует класс FormsAuthentication, считывая параметры конфигурации и получая значения cookie и значения шифрования для данного приложения. |
|
Перенаправляет прошедшего проверку подлинности пользователя по первоначально запрошенному URL-адресу. |
|
Обновляет скользящий срок действия по FormsAuthenticationTicket. |
|
Создает билет проверки подлинности и присоединяет его к коллекции cookie для исходящего отклика. |
|
Удаляет билет проверки подлинности, задавая пустое значение для файла cookie проверки подлинности или текста URL-адреса. Этот метод удаляет как файлы cookie, созданные для данного сеанса, так и файлы длительного пользования.
Важное примечание.
Хотя метод SignOut очищает билет от проверенного сеанса обозревателя, приложение все еще может быть уязвимо для атаки с повторением пакетов из нежелательного источника, получившего билет проверки подлинности с помощью прослушки. Сведения об использовании проверки подлинности с помощью форм для защиты от атаки с повторением пакетов см. в разделе SignOut.
|
В приведенной ниже таблице содержится список полезных свойств для управления билетами проверки подлинности с помощью форм.
Свойство |
Описание |
---|---|
Возвращает имя файла cookie для данного приложения. |
|
Возвращает путь к файлу cookie для данного приложения. |
|
Возвращает значение, позволяющее определить, поддерживает ли приложение проверку подлинности с помощью форм без использования файлов cookie. |
|
Возвращает значение, позволяющее определить, настроено ли приложение для проверки подлинности с помощью форм без использования файлов cookie. |
|
Возвращает значение домена для файла cookie проверки подлинности с помощью форм. |
|
Возвращает URL-адрес, который будет перенаправлен проверкой подлинности с помощью форм, если URL-адрес перенаправления не указан. |
|
Возвращает URL-адрес страницы входа, на которую будет перенаправлять проверка подлинности с помощью форм. |
|
Возвращает значение, указывающее, должен ли файл cookie быть передан с использованием протокола SSL. |
|
Возвращает значение, определяющее, включен ли скользящий срок действия. |
|
Возвращает значение, показывающее, могут ли пользователи, прошедшие проверку подлинности, перенаправляться на URL-адреса в других веб-приложениях, когда билет проверки подлинности с помощью форм не сохранен в файле cookie. |
Для настройки режима работы проверки подлинности можно использовать методы класса FormsAuthentication. Их также можно использовать в обработчике страницы входа в систему, чтобы создавать избыточный код переадресации. В следующем примере кода показана веб-страница ASP.NET, которая проверяет подлинность пользователя и перенаправляет его на запрошенную страницу.
<html>
<head>
<script language="VB" runat=server>
Sub SubmitBtn_Click(Source As Object, e As EventArgs)
' Try to authenticate credentials supplied by user.
If FormsAuthentication.Authenticate _
(UserName.Value, UserPassword.Value) Then
Dim ticket As New FormsAuthenticationTicket _
(UserName.Value, False, 5000)
FormsAuthentication.RedirectFromLoginPage _
(UserName.Value, Persist.Checked)
End If
End Sub
</script>
</head>
<body>
<form method=post runat=server>
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="UserName" runat=server/>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" id="UserPassword" runat=server/>
</td>
</tr>
</table>
<input type="checkbox" id="Persist" runat=server/>
<!-- Use persistent cookie -->
<br>
<input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
<html>
<head>
<script language="C#" runat=server>
void SubmitBtn_Click(Object Source, EventArgs e)
{
// Try to authenticate credentials supplied by user.
if (FormsAuthentication.Authenticate(UserName.Value,
UserPassword.Value))
{
FormsAuthenticationTicket ticket = new
FormsAuthenticationTicket(UserName.Value, false, 5000);
FormsAuthentication.RedirectFromLoginPage(UserName.Value,
Persist.Checked);
}
}
</script>
</head>
<body>
<form method=post runat=server>
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="UserName" runat=server/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" id="UserPassword" runat=server/>
</td>
</tr>
</table>
<input type="checkbox" id="Persist" runat=server/>
<!-- Use persistent cookie. -->
<br>
<input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
Приложения, требующие тщательного контроля за свойствами HTTP-файла cookie, могут создавать билет и выполнять переадресацию в пользовательском коде. В этих случаях необходимо использовать методы шифрования класса FormsAuthentication для шифрования билета проверки подлинности.