FormsAuthentication.SignOut Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Удаляет запрос проверки подлинности форм из браузера.
public:
static void SignOut();
public static void SignOut();
static member SignOut : unit -> unit
Public Shared Sub SignOut ()
Примеры
В следующем примере кода очищается файл cookie проверки подлинности форм с помощью SignOut метода и перенаправляет пользователя на страницу входа с помощью RedirectToLoginPage метода.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void LoginLink_OnClick(object sender, EventArgs args)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
Welcome <b><%=User.Identity.Name%></b>. Not <b><%=User.Identity.Name%></b>?
Click <asp:LinkButton id="LoginLink" Text="here"
OnClick="LoginLink_OnClick" runat="server" />
to sign in.
<!-- Page Contents -->
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub LoginLink_OnClick(sender As Object, args As EventArgs)
FormsAuthentication.SignOut()
FormsAuthentication.RedirectToLoginPage()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
Welcome <b><%=User.Identity.Name%></b>. Not <b><%=User.Identity.Name%></b>?
Click <asp:LinkButton id="LoginLink" Text="here"
OnClick="LoginLink_OnClick" runat="server" />
to sign in.
<!-- Page Contents -->
</form>
</body>
</html>
Комментарии
Метод SignOut удаляет сведения о запросе проверки подлинности форм из файла cookie или URL-адреса, если CookiesSupported есть false. Этот SignOut метод можно использовать в сочетании с методом RedirectToLoginPage для выхода одного пользователя и разрешения входа другого пользователя.
Если вы работаете исключительно в режиме без файлов cookie или поддерживаете как прошедших проверку подлинности, так и анонимных пользователей, вы должны явно контролировать перенаправление на страницу входа, если требуется специальная бизнес-логика для выполнения в результате удаления анонимного идентификатора.
SignOut При вызове метода перенаправление на страницу входа приложения выполняется путем вызова Redirect метода с endResponse заданным параметромfalse. Перенаправление не выполняется, пока текущая страница не завершит выполнение, поэтому можно запустить дополнительный код. Если код не содержит явного перенаправления на другую страницу, пользователь перенаправляется на страницу входа, настроенную в файле конфигурации приложения.
SignOut Вызов метода удаляет только файл cookie проверки подлинности форм. Веб-сервер не сохраняет допустимые и просроченные билеты проверки подлинности для последующего сравнения. Это делает сайт уязвимым к атаке воспроизведения, если злоумышленник получает допустимый файл cookie проверки подлинности форм. Чтобы повысить безопасность при использовании файла cookie проверки подлинности форм, выполните указанные ниже действия.
Используйте абсолютный срок действия для файлов cookie проверки подлинности форм, задав SlidingExpiration для свойства значение
false. Это ограничивает окно, в котором можно воспроизвести ухитованный файл cookie.Только выдает и принимает файлы cookie проверки подлинности по протоколу SSL, задав RequireSSL свойство и
trueзапустив весь веб-сайт в ssl. RequireSSL Установка свойства дляtrueобеспечения того, чтобы ASP.NET никогда не отправляли файл cookie проверки подлинности в браузер через подключение, отличное от SSL, однако клиент может не учитывать безопасный параметр в файле cookie. Это означает, что клиент может отправить файл cookie проверки подлинности форм через подключение, отличное от SSL, что делает его уязвимым для перехвата. Вы можете запретить клиенту отправлять файл cookie проверки подлинности форм в ясном виде, запустив весь веб-сайт под протоколом SSL.Используйте постоянное хранилище на сервере для записи при выходе пользователя из веб-сайта, а затем используйте событие приложения, например PostAuthenticateRequest событие, чтобы определить, прошел ли текущий пользователь проверку подлинности с помощью проверки подлинности форм. Если пользователь прошел проверку подлинности с помощью проверки подлинности форм, а сведения в постоянном хранилище указывают на выход пользователя, немедленно снимите файл cookie проверки подлинности и перенаправьте браузер обратно на страницу входа. После успешного входа обновите хранилище, чтобы отразить, что пользователь вошел в систему. При использовании этого метода приложение должно отслеживать состояние вошедшего в систему пользователя и принудительно отключать пользователей бездействия.