Udostępnij za pośrednictwem


ClientFormsAuthenticationMembershipProvider.Logout Metoda

Definicja

Wyloguj użytkownika.

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

Wyjątki

Wartość właściwości IsOffline jest false, a dostawca członkostwa nie może uzyskać dostępu do usługi uwierzytelniania.

Przykłady

Poniższy przykładowy kod pokazuje, jak za pomocą tej metody wylogować użytkownika.

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

Uwagi

Metoda Logout czyści wszystkie pliki cookie uwierzytelniania z pamięci podręcznej plików cookie i resetuje właściwość staticThread.CurrentPrincipal do obiektu WindowsPrincipal zawierającego bieżący WindowsIdentity.

Po wywołaniu tej metody bieżący użytkownik nie jest już uwierzytelniany dla usług aplikacji klienckich. Oznacza to, że nie można pobrać ról za pośrednictwem klasy ClientRoleProvider i ustawień za pośrednictwem klasy ClientSettingsProvider. Jednak ponieważ użytkownik może mieć prawidłową tożsamość systemu Windows, nadal może otrzymać wartość true z kodu, takiego jak następujące: Thread.CurrentPrincipal.Identity.IsAuthenticated. Aby określić, czy użytkownik jest uwierzytelniony dla usług aplikacji klienckich, upewnij się, że wartość właściwości IdentityIPrincipal pobrana za pośrednictwem właściwości staticCurrentPrincipal jest odwołaniem ClientFormsIdentity. Następnie sprawdź właściwość ClientFormsIdentity.IsAuthenticated.

Aby ponownie uwierzytelnić bieżącego użytkownika, wywołaj metodę ClientFormsAuthenticationMembershipProvider.ValidateUser lub metodę staticMembership.ValidateUser.

Dotyczy

Zobacz też