Condividi tramite


ClientFormsAuthenticationMembershipProvider.Logout Metodo

Definizione

Disconnette l'utente.

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

Eccezioni

Il valore della proprietà IsOffline è false e il provider di appartenenze non è in grado di accedere al servizio di autenticazione.

Esempio

Il codice di esempio seguente illustra come usare questo metodo per disconnettere l'utente.

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

Commenti

Il metodo Logout cancella tutti i cookie di autenticazione dalla cache dei cookie e reimposta la proprietà staticThread.CurrentPrincipal su un oggetto WindowsPrincipal che contiene il WindowsIdentitycorrente.

Dopo aver chiamato questo metodo, l'utente corrente non viene più autenticato per i servizi dell'applicazione client. Ciò significa che non è possibile recuperare i ruoli tramite la classe ClientRoleProvider e le impostazioni tramite la classe ClientSettingsProvider. Tuttavia, poiché l'utente potrebbe avere un'identità di Windows valida, è comunque possibile ricevere un valore true dal codice, ad esempio: Thread.CurrentPrincipal.Identity.IsAuthenticated. Per determinare se l'utente è autenticato per i servizi dell'applicazione client, verificare che il valore della proprietà Identity del IPrincipal recuperato tramite la proprietà staticCurrentPrincipal sia un riferimento ClientFormsIdentity. Controllare quindi la proprietà ClientFormsIdentity.IsAuthenticated.

Per autenticare nuovamente l'utente corrente, chiamare il metodo ClientFormsAuthenticationMembershipProvider.ValidateUser o il metodo staticMembership.ValidateUser.

Si applica a

Vedi anche