Freigeben über


FormsAuthentication.SignOut Methode

Definition

Entfernt das Formularauthentifizierungsticket aus dem Browser.

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

Beispiele

Im folgenden Codebeispiel wird das Formularauthentifizierungscooky mithilfe der SignOut -Methode gelöscht und der Benutzer mithilfe der RedirectToLoginPage -Methode zur Anmeldeseite weitergeleitet.

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

Hinweise

Die SignOut -Methode entfernt die Ticketinformationen für die Formularauthentifizierung aus dem Cookie oder der URL, wenn CookiesSupported ist false. Sie können die SignOut -Methode in Verbindung mit der RedirectToLoginPage -Methode verwenden, um einen Benutzer abzumelden und einem anderen Benutzer die Anmeldung zu gestatten.

Wenn Sie ausschließlich im cookielosen Modus ausgeführt werden oder authentifizierte und anonyme Benutzer unterstützen, sollten Sie die Umleitung zur Anmeldeseite explizit steuern, wenn sie eine spezielle Geschäftslogik ausführen müssen, die durch das Entfernen des anonymen Bezeichners ausgeführt werden soll.

Wenn die SignOut -Methode aufgerufen wird, wird eine Umleitung zur Anmeldeseite der Anwendung durchgeführt, indem die Redirect -Methode aufgerufen wird, wobei der endResponse Parameter auf falsefestgelegt ist. Die Umleitung erfolgt erst, wenn die ausführung der aktuellen Seite abgeschlossen ist, sodass zusätzlicher Code ausgeführt werden kann. Wenn der Code keine explizite Umleitung auf eine andere Seite enthält, wird der Benutzer zur Anmeldeseite weitergeleitet, die in der Konfigurationsdatei der Anwendung konfiguriert ist.

Durch Aufrufen der SignOut Methode wird nur das Formularauthentifizierungscookie entfernt. Der Webserver speichert keine gültigen und abgelaufenen Authentifizierungstickets für einen späteren Vergleich. Dies macht Ihre Website anfällig für einen Wiedergabeangriff, wenn ein böswilliger Benutzer ein gültiges Formularauthentifizierungscooky erhält. Um die Sicherheit bei verwendung eines Formularauthentifizierungscookies zu verbessern, sollten Sie die folgenden Schritte ausführen:

  • Verwenden Sie den absoluten Ablauf für Formularauthentifizierungscookies, indem Sie die SlidingExpiration -Eigenschaft auf falsefestlegen. Dies schränkt das Fenster ein, in dem ein gekapertes Cookie wiedergegeben werden kann.

  • Stellen Und akzeptieren Sie Authentifizierungscookies nur über SSL (Secure Sockets Layer), indem Sie die RequireSSL Eigenschaft auf true und durch Ausführen der gesamten Website unter SSL festlegen. Durch Festlegen der RequireSSL Eigenschaft auf true wird sichergestellt, dass ASP.NET niemals ein Authentifizierungscooky über eine Nicht-SSL-Verbindung an den Browser sendet. Der Client berücksichtigt jedoch möglicherweise nicht die sichere Einstellung für das Cookie. Dies bedeutet, dass der Client das Formularauthentifizierungscooky über eine Nicht-SSL-Verbindung sendet, sodass er anfällig für Hijack bleibt. Sie können verhindern, dass ein Client das Formularauthentifizierungscooky im Clear sendet, indem Sie die gesamte Website unter SSL ausführen.

  • Verwenden Sie persistenten Speicher auf dem Server, um aufzuzeichnen, wann sich ein Benutzer von der Website abmeldet, und verwenden Sie dann ein Anwendungsereignis wie das Ereignis, PostAuthenticateRequest um zu bestimmen, ob der aktuelle Benutzer mit der Formularauthentifizierung authentifiziert wurde. Wenn der Benutzer mit der Formularauthentifizierung authentifiziert wurde und die Informationen im persistenten Speicher darauf hindeuten, dass der Benutzer abgemeldet ist, löschen Sie sofort das Authentifizierungscooky, und leiten Sie den Browser zurück zur Anmeldeseite. Aktualisieren Sie nach einer erfolgreichen Anmeldung den Speicher so, dass der Benutzer angemeldet ist. Wenn Sie diese Methode verwenden, muss Ihre Anwendung den angemeldeten Status des Benutzers nachverfolgen und erzwingen, dass sich Benutzer im Leerlauf abmelden.

Gilt für:

Weitere Informationen