Cenni preliminari sui servizi delle applicazioni client
I servizi dell'applicazione client consentono di accedere facilmente ai servizi dei profili, dei ruoli e di accesso di Microsoft Ajax dalle applicazioni Windows Form e Windows Presentation Foundation (WPF). I servizi delle applicazioni Microsoft Ajax sono inclusi in Microsoft ASP.NET 2.0 AJAX Extensions, incluso con Visual Studio 2008 e .NET Framework versione 3.5. Questi servizi consentono a più applicazioni basate su Windows e Web di condividere le informazioni sugli utenti e le funzionalità di gestione degli utenti in un unico server.
I servizi dell'applicazione client includono provider di servizi client che si collegano al modello di estensibilità dei servizi Web per attivare le funzionalità seguenti per le applicazioni basate su Windows:
Configurazione semplice del client È possibile attivare e configurare i servizi del profilo, dei ruoli e di accesso utilizzando l'accesso, il ruoli e servizi profili utilizzando Progettazione progetti di Visual Studio o specificando i provider dei servizi client nel file App.config del progetto. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client.
Semplice programmazione. Dopo aver attivato i servizi dell'applicazione client, è possibile accedere indirettamente ai provider di servizi tramite l'appartenenza .NET Framework 2.0esistente, i ruoli e le classi delle impostazioni dell'applicazione. È inoltre possibile accedere direttamente alle classi .NET Framework versione 3.5 che implementano i servizi dell'applicazione client. Nella maggior parte dei casi l'accesso diretto non è tuttavia necessario. Per ulteriori informazioni sulle classi dei servizi dell'applicazione client, vedere la sezione "Classi dei servizi dell'applicazione client" in questo argomento.
Supporto offline. Le applicazioni basate su Windows devono spesso venire eseguite in ambienti connessi saltuariamente. Quando l'applicazione è online, i provider di servizi client memorizzeranno nella cache i valori recuperati dal server per utilizzarli quando l'applicazione è offline. Per ulteriori informazioni, vedere Procedura: lavorare offline con servizi delle applicazioni client.
Integrazione con la finestra di progettazione delle impostazioni dell'applicazione Visual Studio. Quando si aggiungono impostazioni al progetto in Visual Studio, è possibile specificare quelle a cui è possibile accedere mediante il provider di servizi delle impostazioni client.
Queste funzionalità vengono illustrate più dettagliatamente nelle sezioni seguenti. Per ulteriori informazioni sui servizi dell'applicazione Microsoft Ajax, vedere Cenni preliminari sui servizi delle applicazioni ASP.NET.
Autenticazione
È possibile utilizzare i servizi dell'applicazione client per convalidare un utente tramite un servizio di autenticazione di Microsoft Ajax. È possibile convalidare un utente l'autenticazione basata su form o su Windows. L'autenticazione basata su Windows indica che l'identità dell'utente viene fornita dal sistema operativo quando un utente accede a un computer o a un dominio. L'autenticazione di Windows viene generalmente utilizzata con un'applicazione distribuita su una rete Intranet aziendale. L'autenticazione basata su form indica che è necessario includere i controlli di accesso nell'applicazione e passare le credenziali acquisite al provider di autenticazione. L'autenticazione di basata su form viene generalmente utilizzata con un'applicazione distribuita in Internet.
Per convalidare un utente, è necessario chiamare il metodo static Membership.ValidateUser. Questo metodo accede al provider di servizi client configurato per l'applicazione e restituisce un valore Boolean che indica se l'utente è valido. Per ulteriori informazioni, vedere Procedura: implementare l'accesso utente con i servizi dell'applicazione client.
Quando si utilizza l'autenticazione basata su Windows, è necessario passare stringhe vuote o null come parametri del metodo ValidateUser. Durante l'utilizzo dell'autenticazione basata su Windows, questa chiamata al metodo restituirà sempre true.
Con l'autenticazione basata su form, il metodo ValidateUser restituirà un valore che indica se il servizio remoto ha autenticato l'utente. Se la convalida ha esito positivo, un cookie di autenticazione viene archiviato sul disco rigido locale. Questo cookie viene utilizzato per confermare la convalida durante l'accesso ai servizi di ruoli e impostazioni.
Quando si utilizza l'autenticazione basata su form, è possibile passare un nome utente e una password al metodo ValidateUser. È anche possibile passare stringhe vuote o null come parametri per utilizzare un provider di credenziali. Un provider di credenziali è una classe fornita e specificata nella configurazione dell'applicazione. Una classe del provider di credenziali deve implementare l'interfaccia IClientFormsAuthenticationCredentialsProvider che dispone di un solo metodo denominato GetCredentials. L'utilizzo di un provider di credenziali consente di condividere una sola finestra di dialogo di accesso fra più applicazioni. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client.
Quando si configura l'applicazione per utilizzare un provider di credenziali con autenticazione basata su form, è necessario passare stringhe vuote o null come parametri del metodo ValidateUser. Il provider di servizi chiamerà quindi l'implementazione del metodo IClientFormsAuthenticationCredentialsProvider.GetCredentials. Questo metodo viene generalmente implementato per visualizzare una finestra di dialogo e restituire un oggetto ClientFormsAuthenticationCredentials compilato.
Per ulteriori informazioni sull'autenticazione, vedere Autenticazione ASP.NET. Per informazioni sulla configurazione del servizio di autenticazione Microsoft Ajax, vedere Utilizzo dell'autenticazione basata su form con Microsoft Ajax.
Ruoli
È possibile utilizzare i servizi dell'applicazione client per recuperare informazioni sui ruoli da un servizio di ruoli Microsoft Ajax esistente. Per determinare se l'utente autenticato corrente è in un particolare ruolo, chiamare il metodo IsInRole del riferimento IPrincipal recuperato dalla proprietà static Thread.CurrentPrincipal. Il metodo IsInRole accetta il nome del ruolo come parametro e restituisce un valore Boolean che indica se l'utente corrente è nel ruolo specificato. Questo metodo restituirà false se l'utente non è autenticato o nel ruolo specificato.
Per ulteriori informazioni, vedere Procedura: accedere a ruoli utente mediante servizi delle applicazioni client. Per informazioni sulla configurazione del servizio dei ruoli Microsoft Ajax, vedere Utilizzo di informazioni sui ruoli con Microsoft Ajax.
Impostazioni
È possibile utilizzare i servizi dell'applicazione client per recuperare le impostazioni dell'applicazione utente da un servizio profili Microsoft Ajax esistente. Le funzioni delle impostazioni Web dei servizi dell'applicazione client si integrano con quelle dell'applicazione fornite in .NET Framework 2.0. Per recuperare le impostazioni Web, è innanzitutto necessario generare una classe Settings del progetto, a cui si accede come Properties.Settings.Default in C# e come My.Settings in Visual Basic, utilizzando la scheda Impostazioni di Progettazione progetti di Visual Studio. Nella scheda Impostazioni è possibile utilizzare il pulsante Carica impostazioni Web per recuperare impostazioni Web e aggiungerle alla classe Settings generata. È possibile utilizzare le impostazioni Web configurate per l'utilizzo da parte di tutti gli utenti autenticati o anonimi.
Per ulteriori informazioni, vedere Procedura: accedere a impostazioni utente mediante servizi delle applicazioni client. Per ulteriori informazioni sulle impostazioni dell'applicazione, vedere Cenni preliminari sulle impostazioni delle applicazioni. Per informazioni sull'implementazione della classe di impostazioni personalizzata anziché generarne una in Visual Studio, vedere Procedura: creare le impostazioni dell'applicazione. Per informazioni sulla configurazione del servizio profili Microsoft Ajax, vedere Utilizzo di informazioni sui profili con Microsoft Ajax.
Classi dei servizi dell'applicazione client
Nella tabella riportata di seguito vengono descritte le classi che implementano le funzionalità dei servizi dell'applicazione client.
Le applicazioni che utilizzano solo le funzionalità delle impostazioni, dei ruoli e dell'autenticazione primarie non dovranno accedere direttamente a queste classi, ma indirettamente ai provider di servizi dell'applicazione client utilizzando la configurazione e le API dell'applicazione descritte nelle sezioni precedenti. È necessario accedere direttamente a queste classi per implementare funzionalità aggiuntive, ad esempio per le operazioni offline e la disconnessione dell'utente.
Nota
Tutte le API dei servizi dell'applicazione client sono sincrone. I servizi dell'applicazione client non supportano direttamente il comportamento asincrono.
I provider di servizi dell'applicazione client implementano o estendono tipi .NET Framework 2.0 standard, ma non implementano ogni membro e funzionalità definita da questi tipi. Non è ad esempio possibile utilizzare i provider di servizi dell'applicazione client per implementare un'applicazione di gestione utenti per la creazione di nuovi utenti e la gestione di appartenenza ai ruoli. Per implementare questa funzionalità, è necessario utilizzare un codice lato server e applicazione Web. Per determinare quali membri non sono implementati, vedere la documentazione di riferimento a cui è possibile accedere dai collegamenti in questa tabella.
Classe |
Descrizione |
---|---|
Questa classe gestisce l'identità dell'utente e i cookie di autenticazione per l'autenticazione basata su form. Il motivo principale per cui si accede direttamente a questa classe è per chiamare il metodo RevalidateUser che riconvalida un utente senza avvisare (ad esempio durante il passaggio dalla modalità offline a quella online). Dopo aver autenticato l'utente con l'autenticazione basata su form, è possible recuperare un'istanza di questa classe mediante la proprietà Identity del riferimento IPrincipal recuperate mediante la proprietà static Thread.CurrentPrincipal. |
|
Questa classe gestisce i ruoli dell'utente. Questa classe non include i membri ai quali non è possibile accedere indirettamente. Dopo aver autenticato l'utente, è tuttavia possibile accedere a un'istanza di questa classe mediante la proprietà static Thread.CurrentPrincipal. |
|
Questa classe fornisce la proprietà static IsOffline utilizzata per passare alla modalità offline nell'applicazione. Per ulteriori informazioni, vedere Procedura: lavorare offline con servizi delle applicazioni client. |
|
Questa classe rappresenta le credenziali utente. Si utilizzerà questa classe solo come tipo di valore restituito del metodo GetCredentials quando si implementa l'interfaccia IClientFormsAuthenticationCredentialsProvider. |
|
Questa classe gestisce l'accesso al servizio di autenticazione remota per l'autenticazione basata su form. Il motivo principale per cui si accede direttamente a questa classe è per utilizzarne i membri Logout e UserValidated che non vengono implementati dalla classe MembershipProvider di base. È inoltre possibile impostare a livello di codice il percorso dei servizi utilizzando la proprietà ServiceUri. È possibile recuperare un'istanza di questa classe mediante la proprietà static Membership.Provider. |
|
Questa classe gestisce l'autenticazione di Windows. La ragione primaria per cui si accede direttamente a questa classe è per chiamare il metodo Logout. Dopo la disconnessione l'utente sarà ancora autenticato per Windows, ma non sarà in grado di accedere ai servizi dell'applicazione remoti. È possibile recuperare un'istanza di questa classe mediante la proprietà static Membership.Provider. |
|
Questa classe gestisce l'accesso al servizio dei ruoli remoto. La ragione primaria per cui si accede direttamente a questa classe è per chiamarne il metodo ResetCache. Questo può essere utile se l'applicazione è configurata per utilizzare un valore di timeout della cache del servizio dei ruoli diverso da zero. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client. È inoltre possibile impostare a livello di codice il percorso dei servizi utilizzando la proprietà ServiceUri. È possibile recuperare un'istanza di questa classe mediante la proprietà static Roles.Provider. |
|
Questa classe gestisce l'accesso al servizio delle impostazioni Web remoto. La ragione primaria per cui si accede a questa classe è per gestire l'evento SettingsSaved. È inoltre possibile impostare a livello di codice il percorso del servizio utilizzando la proprietà ServiceUri. |
|
Questa interfaccia rappresenta un modo indiretto di acquisire nell'applicazione le credenziali utente per la convalida, come descritto precedentemente nella sezione Autenticazione di questo argomento. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client. |
|
Questa classe fornisce una proprietà FailedSettingsList da utilizzare in un gestore eventi ClientSettingsProvider.SettingsSaved. |
|
Questa classe fornisce una proprietà UserName da utilizzare in un gestore eventi UserValidated. |
Vedere anche
Attività
Procedura: configurare i servizi delle applicazioni client
Procedura: implementare l'accesso utente con i servizi dell'applicazione client
Procedura: accedere a ruoli utente mediante servizi delle applicazioni client
Procedura: accedere a impostazioni utente mediante servizi delle applicazioni client
Procedura: lavorare offline con servizi delle applicazioni client
Procedura dettagliata: utilizzo di servizi delle applicazioni client
Concetti
Cenni preliminari sulle impostazioni delle applicazioni
Cenni preliminari sui servizi delle applicazioni ASP.NET
Utilizzo dell'autenticazione basata su form con Microsoft Ajax
Utilizzo di informazioni sui ruoli con Microsoft Ajax
Utilizzo di informazioni sui profili con Microsoft Ajax
Altre risorse
Gestione delle impostazioni di un'applicazione
Gestione delle autorizzazioni tramite ruoli
Creazione e configurazione del database dei servizi per le applicazioni per SQL Server