FormsAuthentication.SignOut Método

Definição

Remove o tíquete de autenticação de formulários do navegador.

public:
 static void SignOut();
public static void SignOut ();
static member SignOut : unit -> unit
Public Shared Sub SignOut ()

Exemplos

O exemplo de código a seguir limpa o cookie de autenticação de formulários usando o SignOut método e redireciona o usuário para a página de logon usando o RedirectToLoginPage método .

<%@ 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>

Comentários

O SignOut método remove as informações do tíquete de autenticação de formulários do cookie ou da URL se CookiesSupported for false. Você pode usar o SignOut método em conjunto com o RedirectToLoginPage método para fazer logoff de um usuário e permitir que um usuário diferente faça logon.

Se você executar exclusivamente no modo sem cookie ou se der suporte a usuários autenticados e anônimos, deverá controlar explicitamente o redirecionamento para a página de logon se precisar que a lógica de negócios especial seja executada como resultado da remoção do identificador anônimo.

Quando o SignOut método é chamado, um redirecionamento para a página de logon do aplicativo é feito chamando o Redirect método com o endResponse parâmetro definido falsecomo . O redirecionamento não ocorre até que a página atual termine de ser executada, portanto, o código adicional pode ser executado. Se o código não contiver um redirecionamento explícito para outra página, o usuário será redirecionado para a página de logon configurada no arquivo de configuração do aplicativo.

Chamar o SignOut método remove apenas o cookie de autenticação de formulários. O servidor Web não armazena tíquetes de autenticação válidos e expirados para comparação posterior. Isso torna seu site vulnerável a um ataque de reprodução se um usuário mal-intencionado obtiver um cookie de autenticação de formulários válido. Para melhorar a segurança ao usar um cookie de autenticação de formulários, você deve fazer o seguinte:

  • Use a expiração absoluta para cookies de autenticação de formulários definindo a SlidingExpiration propriedade falsecomo . Isso limita a janela na qual um cookie sequestrado pode ser reproduzido.

  • Apenas emita e aceite cookies de autenticação por SSL (Secure Sockets Layer), definindo a RequireSSL propriedade true como e executando todo o site em SSL. Definir a RequireSSL propriedade como true garante que ASP.NET nunca enviará um cookie de autenticação para o navegador por meio de uma conexão não SSL; no entanto, o cliente pode não respeitar a configuração segura no cookie. Isso significa que o cliente pode enviar o cookie de autenticação de formulários por uma conexão não SSL, deixando-o vulnerável a sequestro. Você pode impedir que um cliente envie o cookie de autenticação de formulários desmarcado executando todo o site em SSL.

  • Use o armazenamento persistente no servidor para registrar quando um usuário faz logoff do site e, em seguida, use um evento de aplicativo, como PostAuthenticateRequest evento, para determinar se o usuário atual foi autenticado com autenticação de formulários. Se o usuário foi autenticado com autenticação de formulários e se as informações no armazenamento persistente indicarem que o usuário está desconectado, limpe imediatamente o cookie de autenticação e redirecione o navegador de volta para a página de logon. Após um logon bem-sucedido, atualize o armazenamento para refletir que o usuário está conectado. Quando você usa esse método, seu aplicativo deve acompanhar o status conectado do usuário e deve forçar os usuários ociosos a fazer logoff.

Aplica-se a

Confira também