Compartir a través de


ClientFormsAuthenticationMembershipProvider.Logout Método

Definición

Cierra la sesión del usuario.

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

Excepciones

El valor de la propiedad IsOffline es false y el proveedor de pertenencia no puede acceder al servicio de autenticación.

Ejemplos

En el código de ejemplo siguiente se muestra cómo usar este método para cerrar la sesión del usuario.

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

Comentarios

El método Logout borra todas las cookies de autenticación de la caché de cookies y restablece la propiedad staticThread.CurrentPrincipal a un objeto de WindowsPrincipal que contiene el WindowsIdentityactual.

Después de llamar a este método, el usuario actual ya no se autentica para los servicios de aplicaciones cliente. Esto significa que no se pueden recuperar roles a través de la clase y la configuración de ClientRoleProvider a través de la clase ClientSettingsProvider. Sin embargo, dado que el usuario puede tener una identidad de Windows válida, es posible que siga recibiendo un valor de true del código como el siguiente: Thread.CurrentPrincipal.Identity.IsAuthenticated. Para determinar si el usuario está autenticado para los servicios de aplicaciones cliente, confirme que el valor de propiedad Identity del IPrincipal recuperado a través de la propiedad staticCurrentPrincipal es una referencia de ClientFormsIdentity. A continuación, compruebe la propiedad ClientFormsIdentity.IsAuthenticated.

Para volver a autenticar al usuario actual, llame al método ClientFormsAuthenticationMembershipProvider.ValidateUser o al método staticMembership.ValidateUser.

Se aplica a

Consulte también