Condividi tramite


Cenni preliminari sui servizi delle applicazioni client

Aggiornamento: novembre 2007

I servizi dell'applicazione client consentono alle applicazioni Windows Form e Windows Presentation Foundation WPF) di accedere facilmente ai servizi dei profili, dei ruoli e di accesso di ASP.NET AJAX. I servizi dell'applicazione ASP.NET AJAX sono inclusi in Microsoft ASP.NET 2.0 AJAX Extensions, contenuto a sua volta in 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 3.5 Service Pack 1 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 non in linea. Le applicazioni basate su Windows devono spesso venire eseguite in ambienti connessi saltuariamente. Quando l'applicazione è in linea, i provider di servizi client memorizzeranno nella cache i valori recuperati dal server per utilizzarli quando l'applicazione è non in linea. Per ulteriori informazioni, vedere Procedura: lavorare non in linea 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 ASP.NET 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 ASP.NET 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 e la disconnessione utente con servizi delle applicazioni 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 ASP.NET AJAX, vedere Utilizzo dell'autenticazione basata su form con ASP.NET AJAX.

Ruoli

È possibile utilizzare i servizi dell'applicazione client per recuperare informazioni sui ruoli da un servizio di ruoli ASP.NET 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 ASP.NET AJAX, vedere Utilizzo delle informazioni sui ruoli con ASP.NET AJAX.

Impostazioni

È possibile utilizzare i servizi dell'applicazione client per recuperare le impostazioni dell'applicazione utente da un servizio profili ASP.NET AJAX esistente. Le funzioni delle impostazioni Web dei servizi dell'applicazione client si integra con le impostazioni dell'applicazione fornita 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) per il progetto utilizzando la scheda Impostazioni in 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 ASP.NET AJAX, vedere Utilizzo delle informazioni sul profilo con ASP.NET 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 non in linea 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

ClientFormsIdentity

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à non in linea a quella in linea).

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.

ClientRolePrincipal

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.

ConnectivityStatus

Questa classe fornisce la proprietà static IsOffline utilizzata per passare alla modalità non in linea nell'applicazione. Per ulteriori informazioni, vedere Procedura: lavorare non in linea con servizi delle applicazioni client.

ClientFormsAuthenticationCredentials

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.

ClientFormsAuthenticationMembershipProvider

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.

ClientWindowsAuthenticationMembershipProvider

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.

ClientRoleProvider

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.

ClientSettingsProvider

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.

IClientFormsAuthenticationCredentialsProvider

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.

SettingsSavedEventArgs

Questa classe fornisce una proprietà FailedSettingsList da utilizzare in un gestore eventi ClientSettingsProvider.SettingsSaved.

UserValidatedEventArgs

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 e la disconnessione utente con servizi delle applicazioni client

Procedura: accedere a ruoli utente mediante servizi delle applicazioni client

Procedura: accedere a impostazioni utente mediante servizi delle applicazioni client

Procedura: lavorare non in linea 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 ASP.NET AJAX

Utilizzo delle informazioni sui ruoli con ASP.NET AJAX

Utilizzo delle informazioni sul profilo con ASP.NET AJAX

Altre risorse

Servizi applicazioni client

Gestione delle impostazioni di un'applicazione

Autenticazione ASP.NET

Gestione delle autorizzazioni tramite ruoli

Creazione e configurazione del database dei servizi dell'applicazione per SQL Server