ClientFormsIdentity Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 static
Membership.ValidateUser. Dopo l'autenticazione, è possibile recuperare un riferimento all'istanza di ClientFormsIdentity corrente tramite la proprietà Identity del IPrincipal recuperata tramite la proprietà static
Thread.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) |