Freigeben über


ClientFormsAuthenticationMembershipProvider.Logout Methode

Definition

Meldet den Benutzer ab.

public:
 void Logout();
public void Logout ();
member this.Logout : unit -> unit
Public Sub Logout ()

Ausnahmen

Der wert der IsOffline Eigenschaft ist false und der Mitgliedschaftsanbieter kann nicht auf den Authentifizierungsdienst zugreifen.

Beispiele

Im folgenden Beispielcode wird veranschaulicht, wie Sie diese Methode verwenden, um den Benutzer abzumelden.

private void logoutButton_Click(object sender, EventArgs e)
{
    SaveSettings();

    ClientFormsAuthenticationMembershipProvider authProvider =
        (ClientFormsAuthenticationMembershipProvider)
        System.Web.Security.Membership.Provider;

    try
    {
        authProvider.Logout();
    }
    catch (WebException)
    {
        MessageBox.Show("Unable to access the authentication service." +
            Environment.NewLine + "Logging off locally only.",
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        ConnectivityStatus.IsOffline = true;
        authProvider.Logout();
        ConnectivityStatus.IsOffline = false;
    }

    Application.Restart();
}
Private Sub logoutButton_Click(ByVal sender As Object, _
    ByVal e As EventArgs) Handles logoutButton.Click

    SaveSettings()

    Dim authProvider As ClientFormsAuthenticationMembershipProvider = _
        CType(System.Web.Security.Membership.Provider,  _
        ClientFormsAuthenticationMembershipProvider)

    Try

        authProvider.Logout()

    Catch ex As WebException

        MessageBox.Show("Unable to access the authentication service." & _
            Environment.NewLine & "Logging off locally only.", _
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        ConnectivityStatus.IsOffline = True
        authProvider.Logout()
        ConnectivityStatus.IsOffline = False

    End Try

    Application.Restart()

End Sub

Hinweise

Die Logout-Methode löscht alle Authentifizierungscookies aus dem Cookiecache und setzt die staticThread.CurrentPrincipal Eigenschaft auf ein WindowsPrincipal-Objekt zurück, das die aktuelle WindowsIdentityenthält.

Nachdem Sie diese Methode aufgerufen haben, wird der aktuelle Benutzer nicht mehr für Clientanwendungsdienste authentifiziert. Dies bedeutet, dass Sie keine Rollen über die ClientRoleProvider Klasse und Einstellungen über die ClientSettingsProvider Klasse abrufen können. Da der Benutzer jedoch möglicherweise über eine gültige Windows-Identität verfügt, erhalten Sie möglicherweise noch einen true Wert aus Code wie den folgenden: Thread.CurrentPrincipal.Identity.IsAuthenticated. Um festzustellen, ob der Benutzer für Clientanwendungsdienste authentifiziert ist, vergewissern Sie sich, dass der Identity Eigenschaftswert der IPrincipal, die über die staticCurrentPrincipal-Eigenschaft abgerufen wurde, ein ClientFormsIdentity Verweis ist. Überprüfen Sie dann die eigenschaft ClientFormsIdentity.IsAuthenticated.

Rufen Sie zum erneuten Authentifizieren des aktuellen Benutzers die ClientFormsAuthenticationMembershipProvider.ValidateUser-Methode oder die staticMembership.ValidateUser-Methode auf.

Gilt für:

Weitere Informationen