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 Formularauthentifizierungscookies mithilfe der SignOut -Methode gelöscht und der Benutzer mithilfe der RedirectToLoginPage -Methode zur Anmeldeseite umgeleitet.

<%@ 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 ermöglichen.

Wenn Sie ausschließlich im cookielosen Modus ausgeführt werden, oder wenn Sie sowohl authentifizierte als auch anonyme Benutzer unterstützen, sollten Sie die Umleitung zur Anmeldeseite explizit steuern, wenn Sie eine spezielle Geschäftslogik ausführen müssen, nachdem sie den anonymen Bezeichner entfernt haben.

Wenn die SignOut -Methode aufgerufen wird, wird eine Umleitung zur Anmeldeseite der Anwendung durchgeführt, indem die Redirect -Methode mit dem endResponse parameter auf falsefestgelegt wird. 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 zu einer anderen Seite enthält, wird der Benutzer zur Anmeldeseite umgeleitet, die in der Konfigurationsdatei der Anwendung konfiguriert ist.

Beim 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 Formularauthentifizierungscookies 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.

  • Geben Sie nur Authentifizierungscookies über Secure Sockets Layer (SSL) aus und akzeptieren Sie sie, 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 Authentifizierungscookies ü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 Formularauthentifizierungscookies über eine Nicht-SSL-Verbindung sendet, sodass er anfällig für Hijacks bleibt. Sie können verhindern, dass ein Client das Formularauthentifizierungscookies in 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 PostAuthenticateRequest z. B. ein Ereignis, 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 Authentifizierungscookies, und leiten Sie den Browser zurück zur Anmeldeseite. Aktualisieren Sie nach einer erfolgreichen Anmeldung den Speicher, um anzuzeigen, dass der Benutzer angemeldet ist. Wenn Sie diese Methode verwenden, muss Ihre Anwendung die angemeldete status des Benutzers nachverfolgen und die Abmeldung von Benutzern im Leerlauf erzwingen.

Gilt für:

Weitere Informationen