ClientFormsIdentity Classe

Definizione

Rappresenta un'identità utente autenticata per i servizi dell'applicazione client utilizzando l'autenticazione basata su form.

public ref class ClientFormsIdentity : IDisposable, System::Security::Principal::IIdentity
public class ClientFormsIdentity : IDisposable, System.Security.Principal.IIdentity
type ClientFormsIdentity = class
    interface IIdentity
    interface IDisposable
Public Class ClientFormsIdentity
Implements IDisposable, IIdentity
Ereditarietà
ClientFormsIdentity
Implementazioni

Esempio

Il codice di esempio seguente illustra come usare questa classe per riconvalidare automaticamente un utente quando l'applicazione lascia lo stato offline. In questo esempio, un CheckedChanged gestore eventi aggiorna lo stato offline in modo che corrisponda al valore della casella di controllo. Se l'utente imposta l'applicazione sullo stato online, il gestore eventi tenta di riconvalidare l'utente chiamando il RevalidateUser metodo . Tuttavia, se il server di autenticazione non è disponibile, il gestore eventi restituisce l'applicazione allo stato offline.

Nota

Il metodo RevalidateUser viene fornito solo per praticità e poiché non restituisce un valore non può indicare se la riconvalida non è riuscita. La riconvalida può non riuscire, ad esempio, se le credenziali utente sono state modificato nel server. In questo caso, è necessario includere il codice che convalida in modo esplicito gli utenti dopo l'esito negativo di una chiamata al servizio. Per altre informazioni, vedere la sezione Accesso alle impostazioni Web in Procedura dettagliata: Uso dei servizi applicazione client.

private void workOfflineCheckBox_CheckedChanged(
    object sender, EventArgs e)
{
    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked;
    if (!ConnectivityStatus.IsOffline)
    {
        try
        {
            // Silently re-validate the user.
            ((ClientFormsIdentity)
                System.Threading.Thread.CurrentPrincipal.Identity)
                .RevalidateUser();

            // If any settings have been changed locally, save the new
            // new values to the Web settings service.
            SaveSettings();

            // If any settings have not been changed locally, check 
            // the Web settings service for updates. 
            Properties.Settings.Default.Reload();
        }
        catch (System.Net.WebException)
        {
            MessageBox.Show(
                "Unable to access the authentication service. " +
                Environment.NewLine + "Staying in offline mode.",
                "Warning", MessageBoxButtons.OK, 
                MessageBoxIcon.Warning);
            workOfflineCheckBox.Checked = true;
        }
    }
}
Private Sub workOfflineCheckBox_CheckedChanged( _
    ByVal sender As Object, ByVal e As EventArgs) _
    Handles workOfflineCheckBox.CheckedChanged

    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked
    If Not ConnectivityStatus.IsOffline Then

        Try

            ' Silently re-validate the user.
            CType(System.Threading.Thread.CurrentPrincipal.Identity,  _
                ClientFormsIdentity).RevalidateUser()

            ' If any settings have been changed locally, save the new
            ' new values to the Web settings service.
            SaveSettings()

            ' If any settings have not been changed locally, check 
            ' the Web settings service for updates. 
            My.Settings.Reload()

        Catch ex As System.Net.WebException

            MessageBox.Show( _
                "Unable to access the authentication service. " & _
                Environment.NewLine + "Staying in offline mode.", _
                "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            workOfflineCheckBox.Checked = True

        End Try

    End If
End Sub

Commenti

La funzionalità servizi dell'applicazione client usa questa classe per rappresentare un utente autenticato. Quando si configura l'applicazione in modo che usi i servizi dell'applicazione client e l'autenticazione basata su moduli, è possibile autenticare un utente chiamando il staticMembership.ValidateUser metodo . Dopo l'autenticazione, è possibile recuperare un riferimento all'istanza corrente ClientFormsIdentity tramite la Identity proprietà dell'oggetto IPrincipal recuperato tramite la staticThread.CurrentPrincipal proprietà . Per altre informazioni, vedere Servizi applicazioni client.

In genere si accede a un ClientFormsIdentity oggetto come IIdentity riferimento per evitare una dipendenza diretta da questa classe. È possibile determinare se un utente è autenticato controllando la IIdentity.IsAuthenticated proprietà dell'identità. Tuttavia, l'utente può essere autenticato per Windows, ma non per i servizi dell'applicazione client. Per determinare se l'utente è autenticato per i servizi dell'applicazione client, è necessario verificare anche che il valore della IIdentity.AuthenticationType proprietà sia "ClientForms".

È necessario usare un riferimento esplicito ClientFormsIdentity per chiamare il RevalidateUser metodo , che non è definito dall'interfaccia IIdentity .

Costruttori

ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer)

Inizializza una nuova istanza della classe ClientFormsIdentity.

Proprietà

AuthenticationCookies

Ottiene un insieme di cookie recuperati dal servizio di autenticazione.

AuthenticationType

Ottiene il tipo di autenticazione utilizzata per autenticare l'utente.

IsAuthenticated

Ottiene un valore che indica se l'utente è stato autenticato.

Name

Ottiene il nome dell'utente.

Provider

Ottiene il provider di appartenenze utilizzato per autenticare l'utente.

Metodi

Dispose()

Rilascia tutte le risorse usate da ClientFormsIdentity.

Dispose(Boolean)

Rilascia le risorse non gestite usate da ClientFormsIdentity e, facoltativamente, le risorse gestite.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
RevalidateUser()

Autentica automaticamente l'utente utilizzando le credenziali memorizzate nella cache.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche