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 tener acceso 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 Logout método borra todas las cookies de autenticación de la caché de cookies y restablece la staticThread.CurrentPrincipal propiedad a un WindowsPrincipal objeto que contiene el objeto actual WindowsIdentity.

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

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

Se aplica a

Consulte también