Partager via


FormsAuthentication.SignOut Méthode

Définition

Supprime le ticket d’authentification par formulaire du navigateur.

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

Exemples

L’exemple de code suivant efface le cookie d’authentification par formulaire à l’aide de la SignOut méthode et redirige l’utilisateur vers la page de connexion à l’aide de la RedirectToLoginPage méthode.

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

Remarques

La SignOut méthode supprime les informations de ticket d’authentification par formulaire du cookie ou de l’URL si CookiesSupported c’est falsele cas. Vous pouvez utiliser la SignOut méthode conjointement avec la RedirectToLoginPage méthode pour déconnecter un utilisateur et autoriser un autre utilisateur à se connecter.

Si vous exécutez exclusivement en mode sans cookie ou si vous prenez en charge les utilisateurs authentifiés et anonymes, vous devez contrôler explicitement la redirection vers la page de connexion si vous avez besoin d’une logique métier spéciale pour s’exécuter suite à la suppression de l’identificateur anonyme.

Lorsque la SignOut méthode est appelée, une redirection vers la page de connexion de l’application est effectuée en appelant la Redirect méthode avec le endResponse paramètre défini sur false. La redirection n’a pas lieu tant que la page active n’a pas terminé l’exécution, afin que du code supplémentaire puisse être exécuté. Si le code ne contient pas de redirection explicite vers une autre page, l’utilisateur est redirigé vers la page de connexion configurée dans le fichier de configuration de l’application.

L’appel de la SignOut méthode supprime uniquement le cookie d’authentification par formulaire. Le serveur web ne stocke pas les tickets d’authentification valides et expirés pour une comparaison ultérieure. Cela rend votre site vulnérable à une attaque par relecture si un utilisateur malveillant obtient un cookie d’authentification par formulaire valide. Pour améliorer la sécurité lors de l’utilisation d’un cookie d’authentification par formulaire, procédez comme suit :

  • Utilisez l’expiration absolue pour les cookies d’authentification par formulaire en définissant la SlidingExpiration propriété sur false. Cela limite la fenêtre dans laquelle un cookie détourné peut être relu.

  • Émettez et acceptez uniquement les cookies d’authentification via SSL (Secure Sockets Layer), en définissant la RequireSSL propriété sur true et en exécutant l’intégralité du site web sous SSL. La définition de la RequireSSL propriété pour true garantir que ASP.NET n’enverra jamais de cookie d’authentification au navigateur via une connexion non SSL. Toutefois, le client risque de ne pas respecter le paramètre sécurisé sur le cookie. Cela signifie que le client peut envoyer le cookie d’authentification par formulaire via une connexion non SSL, ce qui le laisse vulnérable au détournement. Vous pouvez empêcher un client d’envoyer le cookie d’authentification par formulaire en clair en exécutant l’intégralité du site web sous SSL.

  • Utilisez le stockage persistant sur le serveur pour enregistrer lorsqu’un utilisateur se déconnecte du site Web, puis utilisez un événement d’application tel qu’un événement pour PostAuthenticateRequest déterminer si l’utilisateur actuel a été authentifié avec l’authentification par formulaire. Si l’utilisateur a été authentifié avec l’authentification par formulaire et si les informations dans le stockage persistant indiquent que l’utilisateur est déconnecté, effacez immédiatement le cookie d’authentification et redirigez le navigateur vers la page de connexion. Après une connexion réussie, mettez à jour le stockage pour refléter que l’utilisateur est connecté. Lorsque vous utilisez cette méthode, votre application doit suivre l’état de connexion de l’utilisateur et forcer les utilisateurs inactifs à se déconnecter.

S’applique à

Voir aussi