Procedura: configurare i servizi delle applicazioni client
Aggiornamento: novembre 2007
In questo argomento viene descritto come utilizzare Progettazione progetti di Visual Studio per attivare e configurare i servizi dell'applicazione client. È possibile utilizzare i servizi dell'applicazione client per convalidare utenti e recuperare impostazioni e ruoli utente dal servizio di un'applicazione ASP.NET AJAX esistente. Al termine della configurazione sarà possibile accedere ai servizi attivati nel codice dell'applicazione come descritto in Cenni preliminari sui servizi delle applicazioni client. Per ulteriori informazioni sui servizi dell'applicazione ASP.NET AJAX, vedere Cenni preliminari sui servizi delle applicazioni ASP.NET.
È possibile attivare e configurare i servizi dell'applicazione client nella pagina Servizi di Progettazione progetti. La pagina Servizi aggiorna i valori nel file App.config del progetto. Per accedere a Progettazione progetti, scegliere il comando Proprietà dal menu Progetto. Per ulteriori informazioni sulla pagina Servizi, vedere Pagina Servizi, Progettazione progetti. Per ulteriori informazioni su Progettazione progetti, vedere Introduzione a Progettazione progetti.
Nella seguente procedura viene illustrato come eseguire le configurazione di base per i servizi dell'applicazione client. Le opzioni di configurazione avanzate sono descritte nelle sezioni successive.
Per configurare i servizi dell'applicazione client
Selezionare un nodo di progetto in Esplora soluzioni, quindi scegliere Proprietà dal menu Progetto.
Verrà visualizzata la finestra Progettazione progetti.
Fare clic sulla scheda Servizi. Verrà visualizzata la pagina Servizi, come illustrato nella figura seguente.
Nella pagina Servizi selezionare Attiva servizi applicazioni client.
Selezionare Usa autenticazione basata su form se si intende fornire la finestra di dialogo o i controlli di accesso personalizzati. Altrimenti selezionare Usa autenticazione di Windows per utilizzare l'identità fornita dal sistema operativo. Per ulteriori informazioni, vedere Cenni preliminari sui servizi delle applicazioni client.
Nota: Se si seleziona Usa autenticazione di Windows, i servizi dell'applicazione client verranno configurati automaticamente per utilizzare un database SQL Server Compact Edition versione 3.5. Questo viene indicato nella finestra di dialogo Impostazioni avanzate per i servizi come descritto nella sezione successiva. Se si seleziona Usa autenticazione basata su form, l'impostazione Usa stringa di connessione personalizzata non verrà deselezionata automaticamente. Pertanto, se il database di SQL Server Compact 3.5 è già stato generato per essere utilizzato con l'autenticazione di Windows, potrebbero verificarsi errori. Per correggerli, deselezionare l'impostazione Usa stringa di connessione personalizzata nella finestra di dialogo Impostazioni avanzate per i servizi.
Se si seleziona Usa autenticazione basata su form, nella casella Percorso servizio di autenticazione specificare l'URL dell'host del servizio, escluso il nome file. La finestra di progettazione aggiungerà automaticamente il nome file standard (Authentication_JSON_AppService.axd) durante la scrittura del valore nel file di configurazione.
Facoltativamente, se si seleziona Usa autenticazione basata su form, è possibile specificare un valore nella casella Provider credenziali . Il provider di credenziali deve implementare l'interfaccia IClientFormsAuthenticationCredentialsProvider. Utilizzando un provider di credenziali, è possibile separare l'interfaccia utente di accesso dall'altro codice dell'applicazione. In questo modo, è possibile creare una sola finestra di dialogo di accesso da utilizzare in più applicazioni. Per ulteriori informazioni, vedere Procedura: implementare l'accesso e la disconnessione utente con servizi delle applicazioni client.
Se si specifica un provider di credenziali, è necessario specificarlo come nome di tipo completo dell'assembly. Per ulteriori informazioni, vedere Type.AssemblyQualifiedName e Nomi degli assembly. Il formato più semplice di un nome di tipo completo dell'assembly è simile al seguente:
MyNamespace.MyLoginClass, MyAssembly
Nelle caselle di testo Percorso servizi ruoli e Percorso servizi impostazioni Web specificare il percorso di ogni servizio, escluso il nome file. La finestra di progettazione aggiungerà automaticamente i nomi file standard (Role_JSON_AppService.axd e Profile_JSON_AppService.axd) durante la scrittura del valore nel file di configurazione.
Facoltativamente, fare clic su Avanzate per modificare le impostazioni avanzate, ad esempio il comportamento di memorizzazione nella cache locale. Per ulteriori informazioni, vedere la procedura successiva.
Configurazione avanzata
Nelle seguenti procedure viene illustrato come configurare i servizi dell'applicazione client per scenari meno comuni. É ad esempio possibile utilizzare queste opzioni di configurazione per le applicazioni distribuite nei percorsi pubblici, oppure è possibile utilizzare un database SQL Server Compact Edition versione 3.5 crittografato come cache di dati locale.
Per configurare impostazioni avanzate per i servizi dell'applicazione client
Nella pagina Servizi di Progettazione progetti fare clic su Avanzate.
Verrà visualizzata la finestra di dialogo Impostazioni avanzate per i servizi, come mostrato nell'illustrazione seguente. Per ulteriori informazioni su questa finestra di dialogo, vedere Finestra di dialogo Impostazioni avanzate per i servizi.
Selezionare o deselezionare Salva hash della password localmente per consentire l'accesso non in linea. Quando si seleziona questa opzione, la password dell'utente verrà memorizzata localmente nella cache in formato crittografato. Questo è utile se si implementa la modalità non in linea per l'applicazione. Con questa opzione selezionata, è possibile convalidare utenti anche quando la proprietà IsOffline è stata impostata su true. Per ulteriori informazioni sulla modalità non in linea, vedere Procedura: lavorare non in linea con servizi delle applicazioni client.
Selezionare o deselezionare Richiedi agli utenti di accedere di nuovo a ogni scadenza del cookie del server. Il cookie di autenticazione è configurato nel servizio remoto e indica per quanto tempo rimarrà attivo un accesso dell'utente. Per ulteriori informazioni sulla configurazione del cookie, vedere l'attributo timeout in Elemento forms per authentication (schema delle impostazioni ASP.NET).
Se si seleziona questa opzione, qualsiasi tentativo di accesso ai servizi delle impostazioni Web o dei ruoli remoti dopo la scadenza del cookie di autenticazione genererà un'eccezione WebException. È possibile gestire questa eccezione e visualizzare una finestra di dialogo di accesso per riconvalidare gli utenti. Per un esempio di questo comportamento, vedere Procedura dettagliata: utilizzo di servizi delle applicazioni client. Questa opzione è utile per le applicazioni distribuite nei percorsi pubblici per garantire che gli utenti che escono dall'applicazione non rimangano autenticati a tempo indeterminato mentre questa continua a essere eseguita.
Se si deseleziona questa opzione e si tenta di accedere ai servizi remoti dopo la scadenza del cookie di autenticazione, gli utenti verranno riconvalidati automaticamente.
Specificare un valore per Timeout cache servizio ruolo. Impostare questo intervallo su un valore piccolo se i ruoli vengono aggiornati spesso, altrimenti utilizzare un valore maggiore. Se si implementa la modalità non in linea, impostare l'intervallo temporale su un valore elevato per impedire che le informazioni sui ruoli scadano mentre l'applicazione è non in linea.
Il provider dei ruoli accede ai valori o ai servizi dei ruoli memorizzati nella cache quando si chiama il metodo IsInRole. Per reimpostare la cache a livello di codice e forzare l'accesso di questo metodo al servizio remoto, chiamare il metodo ResetCache.
Selezionare o deselezionare Usa stringa di connessione personalizzata. Per ulteriori informazioni, vedere la procedura successiva.
Per configurare i servizi dell'applicazione client in modo da utilizzare un database per la cache locale
Nella pagina Servizi di Progettazione progetti fare clic su Avanzate.
Verrà visualizzata la finestra di dialogo Impostazioni avanzate per i servizi.
Selezionare Usa stringa di connessione personalizzata
Nella casella di testo verrà visualizzato il valore predefinito Data Source = |SQL/CE|.
Per generare e utilizzare un database SQL Server Compact Edition versione 3.5, lasciare invariato il valore predefinito della stringa di connessione. In Visual Studio verrà generato un file di database il quale verrà inserito nella directory indicata dalla proprietà Application.UserAppDataPath.
Per generare e utilizzare un database SQL Server Compact 3.5 crittografato, aggiungere i valori password e encrypt database alla stringa di connessione come illustrato nell'esempio seguente.
Nota: Assicurarsi di specificare una password complessa. Non è possibile modificare la password dopo che il database è stato generato.
Data Source = |SQL/CE|;password=<password>;encrypt database=true
Per utilizzare il database personalizzato di SQL Server, specificare la stringa di connessione personalizzata. Per informazioni sui formati validi della stringa di connessione, vedere la documentazione di SQL Server. Questo database non viene generato automaticamente. La stringa di connessione deve fare riferimento a un database esistente che è possibile creare utilizzando le seguenti istruzioni SQL.
CREATE TABLE ApplicationProperties (PropertyName nvarchar(256), PropertyValue nvarchar(256)) CREATE TABLE UserProperties (PropertyName nvarchar(256), PropertyValue nvarchar(256)) CREATE TABLE Roles (UserName nvarchar(256), RoleName nvarchar(256)) CREATE TABLE Settings (PropertyName nvarchar(256), PropertyStoredAs nvarchar(1), PropertyValue nvarchar(2048))
Utilizzo di provider personalizzati
Per impostazione predefinita i servizi dell'applicazione client utilizzano i provider inclusi nello spazio dei nomi System.Web.ClientServices.Providers. Quando si configura l'applicazione utilizzando la pagina Servizi di Progettazione progetti, i riferimenti ai provider specificati vengono aggiunti nel file App.config. Questi provider predefiniti accedono ai provider corrispondenti sul server. I servizi Web spesso sono configurati per accedere a dati dell'utente tramite provider quali SqlMembershipProvider e SqlRoleProvider.
Se si desidera utilizzare provider di servizi personalizzati, in genere è necessario modificare i provider sul lato server in modo che influiscano su tutte le applicazioni client che accedono al server. È tuttavia possibile scegliere di utilizzare provider non predefiniti sul lato client. È possibile specificare provider di autenticazione o di ruoli personalizzati nel file App.config del progetto, come illustrato nella procedura descritta di seguito. Per informazioni sulla creazione di provider di ruoli e di autenticazione personalizzati, vedere Implementazione di un provider di appartenenze e Implementazione di un provider di ruoli. È anche possibile utilizzare un provider di impostazioni personalizzato modificando la classe Settings (a cui è possibile accedere come Properties.Settings.Default in C# e My.Settings in Visual Basic) del progetto. Per ulteriori informazioni, vedere Architettura Impostazioni applicazione.
Per configurare i servizi dell'applicazione client in modo da utilizzare provider non predefiniti
Per utilizzare un provider di servizi di autenticazione o di ruoli non predefinito, completare innanzitutto tutte le altre impostazioni di configurazione utilizzando la pagina Servizi.
Chiudere Progettazione progetti. È necessario eseguire questa operazione perché la pagina Servizi aggiornerà automaticamente il file App.config anche se non si modificano le impostazioni. Se si modifica manualmente il file App.config come descritto in questa procedura e quindi si ritorna alla pagina Servizi, le modifiche verranno reimpostate.
In Esplora soluzioni fare doppio clic su App.config.
Il file di configurazione dell'applicazione verrà aperto nell'editor di testo.
Individuare l'elemento <providers> all'interno dell'elemento <membership> o <roleManager>. Questi elementi sono figli dell'elemento <system.web>. L'elemento <membership> viene utilizzato per specificare i provider di autenticazione mentre l'elemento <roleManager> viene utilizzato per specificare i provider di ruoli.
Aggiungere un elemento <add> come figlio dell'elemento <providers>. È necessario specificare gli attributi name e type come illustrato nell'esempio riportato di seguito. Il valore dell'attributo di type deve essere un nome di tipo completo dell'assembly. Per ulteriori informazioni, vedere Type.AssemblyQualifiedName e Nomi degli assembly.
<add name="MyCustomRoleProvider" type="MyNamespace.MyRoleProvider, MyAssembly" />
Modificare l'attributo defaultProvider dell'elemento <membership> o <roleManager> in modo da specificare il valore del nome nell'elemento <add> aggiunto nel passaggio precedente.
<roleManager enabled="true" defaultProvider="MyCustomRoleProvider">
Vedere anche
Attività
Procedura: implementare l'accesso e la disconnessione utente con 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 sui servizi delle applicazioni client
Introduzione a Progettazione progetti
Implementazione di un provider di appartenenze
Implementazione di un provider di ruoli
Architettura Impostazioni applicazione
Riferimenti
Pagina Servizi, Progettazione progetti
Finestra di dialogo Impostazioni avanzate per i servizi
Altre risorse
Creazione e configurazione del database dei servizi dell'applicazione per SQL Server