FormsAuthentication.SignOut Méthode

Définition

Supprime du navigateur le ticket d'authentification par formulaire.

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 est false. 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 à la suite de 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 l’exécution de la page active n’est pas terminée. Du code supplémentaire peut donc ê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, vous devez effectuer les opérations suivantes :

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

  • Émettez et acceptez uniquement les cookies d’authentification sur SSL (Secure Sockets Layer), en définissant la RequireSSL propriété true sur et en exécutant l’intégralité du site Web sous SSL. La définition de la RequireSSL propriété true sur garantit que ASP.NET n’enverra jamais de cookie d’authentification au navigateur via une connexion non SSL. Toutefois, le client peut 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 rend 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 quand un utilisateur se déconnecte du site Web, puis utilisez un événement d’application tel que PostAuthenticateRequest l’événement pour 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 du 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 indiquer que l’utilisateur est connecté. Lorsque vous utilisez cette méthode, votre application doit suivre les status de connexion de l’utilisateur et forcer les utilisateurs inactifs à se déconnecter.

S’applique à

Voir aussi