Condividi tramite


ClientFormsIdentity Classe

Definizione

Rappresenta un'identità utente autenticata per i servizi dell'applicazione client tramite 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 gestore eventi CheckedChanged 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 metodo RevalidateUser. Tuttavia, se il server di autenticazione non è disponibile, il gestore eventi restituisce l'applicazione allo stato offline.

Nota

Il metodo RevalidateUser è solo per praticità. Poiché non ha un valore restituito, non può indicare se la riconvalida non è riuscita. La riconvalida può avere esito negativo, ad esempio se le credenziali utente sono state modificate nel server. In questo caso, potrebbe essere necessario includere codice che convalida in modo esplicito gli utenti dopo che una chiamata al servizio ha esito negativo. Per altre informazioni, vedere la sezione Accesso alle impostazioni Web in Procedura dettagliata: Uso di Servizi applicazioni 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 applicazione client usa questa classe per rappresentare un utente autenticato. Quando si configura l'applicazione per l'uso dei servizi applicazione client e dell'autenticazione basata su moduli, è possibile autenticare un utente chiamando il metodo staticMembership.ValidateUser. Dopo l'autenticazione, è possibile recuperare un riferimento all'istanza di ClientFormsIdentity corrente tramite la proprietà Identity del IPrincipal recuperata tramite la proprietà staticThread.CurrentPrincipal. Per altre informazioni, vedere Client Application Services.

In genere si accede a un oggetto ClientFormsIdentity come riferimento IIdentity per evitare una dipendenza diretta da questa classe. È possibile determinare se un utente è autenticato controllando la proprietà IIdentity.IsAuthenticated 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, è anche necessario verificare che il valore della proprietà IIdentity.AuthenticationType sia "ClientForms".

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

Costruttori

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

Inizializza una nuova istanza della classe ClientFormsIdentity.

Proprietà

AuthenticationCookies

Ottiene una raccolta dei cookie recuperati dal servizio di autenticazione.

AuthenticationType

Ottiene il tipo di autenticazione utilizzato 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 dal ClientFormsIdentity.

Dispose(Boolean)

Rilascia le risorse non gestite usate dal ClientFormsIdentity e, facoltativamente, rilascia 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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
RevalidateUser()

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

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche