Partilhar via


ClientFormsAuthenticationMembershipProvider.Logout Método

Definição

Faz logon do usuário.

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

Exceções

O valor da propriedade IsOffline é false e o provedor de associação não consegue acessar o serviço de autenticação.

Exemplos

O código de exemplo a seguir demonstra como usar esse método para fazer logoff do usuário.

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

Comentários

O método Logout limpa todos os cookies de autenticação do cache de cookie e redefine a propriedade staticThread.CurrentPrincipal para um objeto WindowsPrincipal que contém o WindowsIdentityatual.

Depois de chamar esse método, o usuário atual não será mais autenticado para serviços de aplicativo cliente. Isso significa que você não pode recuperar funções por meio da classe ClientRoleProvider e das configurações por meio da classe ClientSettingsProvider. No entanto, como o usuário pode ter uma identidade válida do Windows, você ainda pode receber um valor true do código, como o seguinte: Thread.CurrentPrincipal.Identity.IsAuthenticated. Para determinar se o usuário é autenticado para serviços de aplicativo cliente, confirme se o valor da propriedade Identity do IPrincipal recuperado por meio da propriedade staticCurrentPrincipal é uma referência ClientFormsIdentity. Em seguida, verifique a propriedade ClientFormsIdentity.IsAuthenticated.

Para autenticar novamente o usuário atual, chame o método ClientFormsAuthenticationMembershipProvider.ValidateUser ou o método staticMembership.ValidateUser.

Aplica-se a

Confira também