Procedura: configurare i servizi delle applicazioni clientHow to: Configure Client Application Services

In questo argomento viene descritto come usare Creazione progetti di Visual Studio per abilitare e configurare i servizi delle applicazioni client.This topic describes how to use the Visual Studio Project Designer to enable and configure client application services. È possibile usare i servizi delle applicazioni client per convalidare gli utenti e recuperare i ruoli utente e le impostazioni da un servizio dell'applicazione Microsoft AjaxMicrosoft Ajax esistente.You can use client application services to validate users and retrieve user roles and settings from an existing Microsoft AjaxMicrosoft Ajax application service. Dopo la configurazione, è possibile accedere ai servizi abilitati nel codice dell'applicazione come descritto in Cenni preliminari sui servizi delle applicazioni client.After configuration, you can access the enabled services in your application code as described in Client Application Services Overview. Per altre informazioni sui servizi delle applicazioni Microsoft AjaxMicrosoft Ajax, vedere l'argomento relativo ai Panoramica sui servizi delle applicazioni ASP.NET.For more information about the Microsoft AjaxMicrosoft Ajax application services, see ASP.NET Application Services Overview.

È possibile abilitare e configurare i servizi delle applicazioni client nella pagina Servizi di Creazione progetti.You can enable and configure client application services on the Services page of the Project Designer. La pagina Servizi aggiorna i valori nel file app. config del progetto.The Services page updates values in your project's App.config file. Per accedere a Creazione progetti, usare il comando Proprietà nel menu Progetto.To access the Project Designer, use the Properties command on the Project menu. Per altre informazioni sulla pagina Servizi, vedere Services Page, Project Designer (Pagina Servizi, Creazione progetti).For more information about the Services page, see Services Page, Project Designer.

La procedura seguente descrive come eseguire la configurazione di base per i servizi delle applicazioni client.The following procedure describes how to perform basic configuration for client application services. Le opzioni di configurazione avanzata sono descritte nelle sezioni successive.Advanced configuration options are described in later sections.

Per configurare i servizi delle applicazioni clientTo configure client application services

  1. In Esplora soluzioni, selezionare un nodo di progetto e quindi, nel menu Progetto, fare clic su Proprietà.In Solution Explorer, select a project node and then on the Project menu, click Properties.

    Viene visualizzata la finestra Creazione progetti.The Project Designer appears.

  2. Fare clic sulla scheda Servizi. Viene visualizzata la pagina Servizi, come illustrato nella figura seguente.Click the Services tab. The Services page appears, as shown in the following illustration.

    Scheda Servizi in Creazione progettiThe Services tab in the project designer

  3. Nella pagina Servizi selezionare Attiva servizi applicazioni client.On the Services page, select Enable client application services.

    Nota

    I servizi delle applicazioni client richiedono la versione completa di.NET Framework e non sono supportati in .NET Framework Client Profile.Client application services require the full version of the .NET Framework, and are not supported in the .NET Framework Client Profile. Se la casella di controllo Attiva servizi applicazioni client è disattivata, verificare che il Framework di destinazione sia impostato su.NET Framework 3.5 o versione successiva.If the Enable client application services check box is disabled, verify that the Target framework is set to the .NET Framework 3.5 or later. Per visualizzare l'impostazione Framework di destinazione in C#, aprire Creazione progetti e quindi fare clic sulla pagina Applicazione.To view the Target framework setting in C#, open the Project Designer and then click the Application page. Per visualizzare l'impostazione Framework di destinazione in Visual Basic, aprire Creazione progetti, fare clic sulla pagina Compilazione e quindi fare clic su Opzioni di compilazione avanzate.To view the Target framework setting in Visual Basic, open the Project Designer, click the Compile page, and then click Advanced Compile Options.

  4. Selezionare Usa autenticazione basata su form se si intende fornire i propri controlli di accesso o la finestra di dialogo, selezionare Usa autenticazione di Windows per usare l'identità fornita dal sistema operativo.Select Use Forms authentication if you plan to provide your own login controls or dialog box, or select Use Windows authentication to use the identity supplied by the operating system. Per altre informazioni, vedere Cenni preliminari sui servizi delle applicazioni client.For more information, see Client Application Services Overview.

    Nota

    Se si seleziona Usa autenticazione di Windows, i servizi delle applicazioni client verranno configurati automaticamente in modo da usare un database di SQL Server Compact.If you select Use Windows authentication, client application services will automatically be configured to use a SQL Server Compact database. Ciò viene indicato nella finestra di dialogo Impostazioni avanzate per i servizi come descritto nella sezione successiva.This is indicated in the Advanced Settings for Services dialog box as described in the next section. Se si seleziona Autenticazione basata su form, l'impostazione Usa stringa di connessione personalizzata non verrà deselezionata automaticamente.If you then select Use Forms authentication, the Use custom connection string setting will not be cleared automatically. Ciò potrebbe causare errori se il database SQL Server Compact 3.5SQL Server Compact 3.5 è già stato generato per l'utilizzo con l'autenticazione di Windows.This could result in errors if the SQL Server Compact 3.5SQL Server Compact 3.5 database has already been generated for use with Windows authentication. Per risolvere gli errori, deselezionare l'impostazione Usa stringa di connessione personalizzata nella finestra di dialogo Impostazioni avanzate per i servizi.To fix these errors, clear the Use custom connection string setting in the Advanced Settings for Services dialog box.

  5. Se è stata selezionata l'opzione Autenticazione basata su form, nel campo Percorso servizio di autenticazione specificare l'URL dell'host del servizio, escluso il nome file.If you selected Use Forms authentication, in the Authentication service location box, specify the URL of the service host, not including the file name. La finestra di progettazione aggiunge automaticamente il nome di file standard (Authentication_JSON_AppService.axd) quando scrive il valore nel file di configurazione.The designer will automatically append the standard file name (Authentication_JSON_AppService.axd) when it writes the value to the configuration file.

  6. Facoltativamente, se è stata selezionata l'opzione Autenticazione basata su form, è possibile specificare un valore nel campo Provider di credenziali.Optionally, if you selected Use Forms authentication, you can specify a value in the Credentials provider box. Il provider di credenziali deve implementare l'interfaccia IClientFormsAuthenticationCredentialsProvider.The credentials provider must implement the IClientFormsAuthenticationCredentialsProvider interface. Usando un provider di credenziali, è possibile separare l'interfaccia utente di accesso dal codice dell'applicazione.By using a credentials provider, you can separate your login user interface from your other application code. Consente di creare un'unica finestra di dialogo di accesso da usare in più applicazioni.This enables you to create a single login dialog box for use in multiple applications. Per altre informazioni, vedere Procedura: implementare l'accesso utente con i servizi dell'applicazione client.For more information, see How to: Implement User Login with Client Application Services.

    Se si specifica un provider di credenziali, è necessario specificarlo come nome di tipo qualificato dall'assembly.If you specify a credentials provider, you must specify it as an assembly-qualified type name. Per altre informazioni, vedere Type.AssemblyQualifiedName e Nomi degli assembly.For more information, see Type.AssemblyQualifiedName and Assembly Names. Nella sua forma più semplice, un nome di tipo qualificato dall'assembly è simile all'esempio seguente:In its simplest form, an assembly-qualified type name looks similar to the following example:

    MyNamespace.MyLoginClass, MyAssembly  
    
  7. Nelle caselle di testo Percorso servizi ruoli e Percorso servizi impostazioni Web specificare il percorso del servizio per ogni servizio, escluso il nome file.In the Roles service location and Web settings service location text boxes, specify the service location for each service, not including the file name. La finestra di progettazione aggiungerà automaticamente i nomi di file standard (Role_JSON_AppService.axd e Profile_JSON_AppService.axd) quando scrive il valore nel file di configurazione.The designer will automatically append the standard file names (Role_JSON_AppService.axd and Profile_JSON_AppService.axd) when it writes the value to the configuration file.

  8. Facoltativamente, fare clic su Avanzate per modificare le impostazioni avanzate, ad esempio il comportamento di memorizzazione nella cache locale.Optionally, click Advanced to modify advanced settings, such as the local caching behavior. Per altre informazioni, vedere la procedura successiva.For more information, see the next procedure.

Configurazione avanzataAdvanced Configuration

Nelle procedure seguenti viene descritto come configurare i servizi delle applicazioni client per scenari meno comuni.The following procedures describe how to configure client application services for less common scenarios. Ad esempio, è possibile usare queste opzioni di configurazione per le applicazioni distribuite nei percorsi pubblici, oppure usare un database di SQL Server Compact crittografato come cache di dati locale.For example, you can use these configuration options for applications deployed in public locations, or to use an encrypted SQL Server Compact database as the local data cache.

Per configurare impostazioni avanzate per i servizi delle applicazioni clientTo configure advanced settings for client application services

  1. Nella pagina Servizi di Creazione progetti, fare clic su Avanzate.On the Services page of the Project Designer, click Advanced.

    Viene visualizzata la finestra di dialogo Impostazioni avanzate per i servizi, come illustrato nella figura seguente.The Advanced Settings for Services dialog box appears, as shown in the following illustration. Per altre informazioni su questa finestra di dialogo, vedere Finestra di dialogo Impostazioni avanzate per i servizi.For more information about this dialog box, see Advanced Settings for Services Dialog Box.

    Finestra di dialogo Impostazioni avanzate per i serviziAdvanced Settings for Services dialog box

  2. Selezionare o deselezionare Salva hash della password localmente per consentire l'accesso offline.Select or clear Save password hash locally to enable offline login. Quando si seleziona questa opzione, verrà memorizzato localmente un modulo crittografato della password dell'utente.When you select this option, an encrypted form of the user's password will be cached locally. Ciò risulta utile se si implementa la modalità non in linea dell'applicazione.This is useful if you implement offline mode for your application. Con questa opzione selezionata è possibile convalidare gli utenti anche quando la proprietà IsOffline è impostata su true.With this option selected, you can validate users even when the IsOffline property has been set to true.

  3. Selezionare o deselezionare Richiedi agli utenti di accedere di nuovo a ogni scadenza del cookie del server.Select or clear Require users to log on again whenever the server cookie expires. Il cookie di autenticazione viene configurato nel servizio remoto e indica quanto tempo rimarrà attivo un accesso dell'utente.The authentication cookie is configured on the remote service, and indicates how long a user's login will remain active. Per altre informazioni su come configurare il cookie, vedere l'attributo timeout in Elemento moduli per autenticazione (schema delle impostazioni ASP.NET).For more information about how to configure the cookie, see the timeout attribute in forms Element for authentication (ASP.NET Settings Schema).

    Se si seleziona questa opzione, il tentativo di accedere ai ruoli remoti o servizi di impostazioni Web dopo la scadenza del cookie di autenticazione genererà un WebException.If you select this option, attempting to access the remote roles or Web settings services after the authentication cookie has expired will throw a WebException. È possibile gestire questa eccezione e visualizzare una finestra di dialogo di accesso per riconvalidare gli utenti.You can handle this exception and display a login dialog box to revalidate users. Per un esempio di questo comportamento, vedere Procedura dettagliata: Uso dei servizi delle applicazioni client.For an example of this behavior, see Walkthrough: Using Client Application Services. Questa opzione è utile per le applicazioni distribuite nei percorsi pubblici per assicurarsi che gli utenti che escono dall'applicazione non rimangano autenticati a tempo indeterminato.This option is useful for applications deployed in public locations to make sure that users who leave the application running after use will not remain authenticated indefinitely.

    Se si deseleziona questa opzione e si prova ad accedere ai servizi remoti dopo la scadenza del cookie di autenticazione, gli utenti verranno riconvalidati automaticamente.If you clear this option and attempt to access the remote services after the authentication cookie has expired, users will be revalidated automatically.

  4. Specificare un valore per Timeout cache servizio ruolo.Specify a value for Role service cache timeout. Impostare questo intervallo di tempo su un valore basso quando i ruoli vengono aggiornati di frequente o su un valore più alto quando i ruoli vengono aggiornati di rado.Set this time interval to a small value when roles are updated frequently or to a larger value when roles are updated infrequently. Se si implementa la modalità non in linea, è possibile impostare l'intervallo di tempo su un valore elevato per impedire che le informazioni sui ruoli scadano mentre l'applicazione è offline.If you implement offline mode, set the time interval to a large value to prevent the role information from expiring while the application is offline.

    Il provider di ruoli accede ai valori del ruolo memorizzati nella cache o al servizio dei ruoli quando si chiama il metodo IsInRole.The role provider accesses the cached role values or the roles service when you call the IsInRole method. Per ripristinare la cache a livello di codice e forzare l'accesso di questo metodo al servizio remoto, chiamare il metodo ResetCache.To programmatically reset the cache and force this method to access the remote service, call the ResetCache method.

  5. Selezionare o deselezionare Usa stringa di connessione personalizzata.Select or clear Use custom connection string. Per altre informazioni, vedere la procedura successiva.For more information, see the next procedure.

Per configurare i servizi delle applicazioni client in modo da usare un database per la cache localeTo configure client application services to use a database for the local cache

  1. Nella pagina Servizi di Creazione progetti, fare clic su Avanzate.On the Services page of the Project Designer, click Advanced.

    Verrà visualizzata la finestra di dialogo Impostazioni avanzate per i servizi.The Advanced Settings for Services dialog box appears.

  2. Selezionare Usa stringa di connessione personalizzata.Select Use custom connection string.

    Il valore predefinito di Data Source = |SQL/CE| viene visualizzato nella casella di testo.The default value of Data Source = |SQL/CE| appears in the text box.

  3. Per generare e usare un database di SQL Server Compact, mantenere il valore predefinito della stringa di connessione.To generate and use a SQL Server Compact database, keep the default connection string value. Visual Studio genera un file di database e lo inserisce nella directory indicata dalla proprietà Application.UserAppDataPath.Visual Studio will generate a database file and put it in the directory indicated by the Application.UserAppDataPath property.

  4. Per generare e usare un database SQL Server Compact 3.5SQL Server Compact 3.5 crittografato, aggiungere i valori password e encrypt database alla stringa di connessione, come illustrato nell'esempio seguente.To generate and use an encrypted SQL Server Compact 3.5SQL Server Compact 3.5 database, add password and encrypt database values to the connection string as shown in the following example.

    Nota

    Assicurarsi di specificare una password complessa.Be sure to specify a strong password. Non è possibile modificare la password dopo che il database è stato generato.You cannot change the password after the database is generated.

    Data Source = |SQL/CE|;password=<password>;encrypt database=true  
    
  5. Per usare il proprio database SQL Server, specificare una stringa di connessione personalizzata.To use your own SQL Server database, specify your own connection string. Per informazioni sui formati di stringa di connessione validi, vedere la documentazione di SQL Server.For information about valid connection string formats, see the SQL Server documentation. Questo database non viene generato automaticamente.This database is not generated automatically. La stringa di connessione deve fare riferimento a un database esistente che è possibile creare usando le seguenti istruzioni SQL.The connection string must refer to an existing database that you can create using the following SQL statements.

    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 personalizzatiUsing Custom Providers

Per impostazione predefinita, la funzionalità dei servizi delle applicazioni client usa i provider nello spazio dei nomi System.Web.ClientServices.Providers.By default, the client application services feature uses the providers in the System.Web.ClientServices.Providers namespace. Quando si configura l'applicazione usando la pagina Servizi di Creazione progetti, i riferimenti ai provider specificati vengono aggiunti al file App.config.When you configure your application by using the Services page of the Project Designer, references to these providers are added to your App.config file. Questi provider predefiniti accedono ai provider corrispondenti sul server.These default providers access corresponding providers on the server. I servizi Web sono spesso configurati in modo da accedere ai dati utente tramite provider come SqlMembershipProvider e SqlRoleProvider.Web services are often configured to access user data through providers such as SqlMembershipProvider and SqlRoleProvider.

Per usare i 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.If you want to use custom service providers, you will typically change the providers on the server side so that they affect all client applications that access the server. Tuttavia, è possibile usare i provider non predefiniti sul lato client.However, you do have the option of using non-default providers on the client side. È possibile specificare l'autenticazione o i provider di ruoli personalizzati nel file App.config del progetto, come illustrato nella procedura seguente.You can specify custom authentication or roles providers in your project's App.config file, as shown in the following procedure. Per informazioni sulla creazione di autenticazione e provider di ruoli personalizzati, vedere Implementazione di un provider di appartenenza e Implementazione di un provider di ruoli.For information about how to create custom authentication and role providers, see Implementing a Membership Provider and Implementing a Role Provider. È anche possibile usare un provider di impostazioni personalizzato modificando la classe Settings del proprio progetto (accessibile come Properties.Settings.Default in C# e My.Settings in Visual Basic).You can also use a custom settings provider by modifying your project's Settings class (accessed as Properties.Settings.Default in C# and My.Settings in Visual Basic). Per altre informazioni, vedere Architettura delle impostazioni delle applicazioni.For more information, see Application Settings Architecture.

Per configurare i servizi delle applicazioni client in modo da usare provider non predefinitiTo configure client application services to use non-default providers

  1. Per usare un'autenticazione o il provider di servizi di ruoli non predefiniti, completare innanzitutto tutte le altre impostazioni di configurazione nella pagina Servizi.To use a non-default authentication or roles service provider, first complete all other configuration settings by using the Services page.

  2. Chiudere Creazione progetti.Close the Project Designer. Questa operazione è necessaria perché la pagina Servizi aggiornerà automaticamente il file App.config anche se non si modificano le impostazioni.This is necessary because the Services page will automatically update your App.config file even if you do not modify any settings. Se si modifica manualmente il file App.config come descritto in questa procedura e quindi si torna alla pagina Servizi, le modifiche verranno reimpostate.If you manually modify your App.config file as described in this procedure and then return to the Services page, your modifications will be reset.

  3. In Esplora soluzioni fare doppio clic su App.config.In Solution Explorer, double-click App.config.

    Il file di configurazione dell'applicazione verrà aperto nell'editor di testo.The application configuration file opens in the text editor.

  4. Trovare l'elemento <providers> all'interno dell'elemento <membership> o <roleManager>.Find the <providers> element within the <membership> or <roleManager> element. Questi elementi sono figli dell'elemento <system.web>.These elements are children of the <system.web> element. L'elemento <membership> viene usato per specificare i provider di autenticazione, mentre l'elemento <roleManager> viene usato per specificare i provider di ruoli.The <membership> element is used to specify authentication providers, and the <roleManager> element is used to specify role providers.

  5. Aggiungere un elemento <add> come figlio dell'elemento <providers>.Add an <add> element as a child of the <providers> element. È necessario specificare gli attributi name e type, come illustrato nell'esempio seguente.You must specify name and type attributes as shown in the following example. Il valore dell'attributo type deve essere un nome di tipo qualificato dall'assembly.The type attribute value must be an assembly-qualified type name. Per altre informazioni, vedere Type.AssemblyQualifiedName e Nomi degli assembly.For more information, see Type.AssemblyQualifiedName and Assembly Names.

    <add name="MyCustomRoleProvider" type="MyNamespace.MyRoleProvider, MyAssembly" />  
    
  6. Modificare l'attributo defaultProvider dell'elemento <membership> o <roleManager> in modo da specificare il valore del nome dall'elemento <add> aggiunto al passaggio precedente.Modify the defaultProvider attribute of the <membership> or <roleManager> element to specify the name value from the <add> element that you added in the previous step.

    <roleManager enabled="true" defaultProvider="MyCustomRoleProvider">  
    

Vedere ancheSee Also

Servizi applicazioni clientClient Application Services
Cenni preliminari sui servizi delle applicazioni clientClient Application Services Overview
Pagina Servizi, Creazione progettiServices Page, Project Designer
Finestra di dialogo Impostazioni avanzate per i serviziAdvanced Settings for Services Dialog Box
Procedura: implementare l'accesso utente con i servizi dell'applicazione clientHow to: Implement User Login with Client Application Services
Procedura dettagliata: uso di servizi delle applicazioni clientWalkthrough: Using Client Application Services
Implementazione di un provider di appartenenzaImplementing a Membership Provider
Implementazione di un provider di ruoliImplementing a Role Provider
Application Settings ArchitectureApplication Settings Architecture
Creazione e configurazione del database dei servizi dell'applicazione per SQL ServerCreating and Configuring the Application Services Database for SQL Server