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 Logout metodo cancella tutti i cookie di autenticazione dalla cache dei cookie e reimposta la staticThread.CurrentPrincipal proprietà su un WindowsPrincipal oggetto che contiene l'oggetto corrente WindowsIdentity.

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 ClientRoleProvider classe e le impostazioni tramite la ClientSettingsProvider classe . Tuttavia, poiché l'utente potrebbe avere un'identità di Windows valida, è comunque possibile ricevere un true valore dal codice, ad esempio il seguente: . Thread.CurrentPrincipal.Identity.IsAuthenticated Per determinare se l'utente è autenticato per i servizi dell'applicazione client, verificare che il Identity valore della proprietà recuperato IPrincipal tramite la staticCurrentPrincipal proprietà sia un ClientFormsIdentity riferimento. Selezionare quindi la ClientFormsIdentity.IsAuthenticated proprietà .

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

Si applica a

Vedi anche