Sdílet prostřednictvím


ClientFormsAuthenticationMembershipProvider.Logout Metoda

Definice

Odhlásí uživatele.

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

Výjimky

Hodnota vlastnosti IsOffline je false a zprostředkovatel členství nemůže získat přístup ke službě ověřování.

Příklady

Následující příklad kódu ukazuje, jak použít tuto metodu k odhlášení uživatele.

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

Poznámky

Metoda Logout vymaže všechny ověřovací soubory cookie z mezipaměti cookie a resetuje vlastnost staticThread.CurrentPrincipal na objekt WindowsPrincipal, který obsahuje aktuální WindowsIdentity.

Po volání této metody se aktuální uživatel již neověřuje pro služby klientských aplikací. To znamená, že nemůžete načíst role prostřednictvím třídy ClientRoleProvider a nastavení prostřednictvím třídy ClientSettingsProvider. Vzhledem k tomu, že uživatel může mít platnou identitu systému Windows, můžete stále obdržet true hodnotu z kódu, například následující: Thread.CurrentPrincipal.Identity.IsAuthenticated. Chcete-li zjistit, zda je uživatel ověřen pro služby klientských aplikací, ověřte, že hodnota vlastnosti IdentityIPrincipal načtená prostřednictvím vlastnosti staticCurrentPrincipal je ClientFormsIdentity odkaz. Potom zkontrolujte vlastnost ClientFormsIdentity.IsAuthenticated.

Pokud chcete aktuálního uživatele znovu vytvořit, zavolejte metodu ClientFormsAuthenticationMembershipProvider.ValidateUser nebo metodu staticMembership.ValidateUser.

Platí pro

Viz také