Поделиться через


ClientFormsAuthenticationMembershipProvider.Logout Метод

Определение

Выходит из системы пользователя.

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

Исключения

Значение свойства IsOfflinefalse, и поставщик членства не может получить доступ к службе проверки подлинности.

Примеры

В следующем примере кода показано, как использовать этот метод для выхода пользователя.

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

Комментарии

Метод Logout очищает все файлы cookie проверки подлинности из кэша файлов cookie и сбрасывает свойство staticThread.CurrentPrincipal в объект WindowsPrincipal, содержащий текущий WindowsIdentity.

После вызова этого метода текущий пользователь больше не проходит проверку подлинности для служб клиентских приложений. Это означает, что нельзя извлекать роли с помощью класса ClientRoleProvider и параметров с помощью класса ClientSettingsProvider. Однако, поскольку у пользователя может быть допустимое удостоверение Windows, вы по-прежнему можете получить true значение из кода, например из следующего: Thread.CurrentPrincipal.Identity.IsAuthenticated. Чтобы определить, выполняется ли проверка подлинности пользователя для служб клиентских приложений, убедитесь, что значение свойства IdentityIPrincipal, полученное через свойство staticCurrentPrincipal, является ссылкой на ClientFormsIdentity. Затем проверьте свойство ClientFormsIdentity.IsAuthenticated.

Чтобы повторно выполнить проверку подлинности текущего пользователя, вызовите метод ClientFormsAuthenticationMembershipProvider.ValidateUser или метод staticMembership.ValidateUser.

Применяется к

См. также раздел