Condividi tramite


Procedura: configurare servizi ASP.NET in ASP.NET AJAX

Aggiornamento: novembre 2007

In questo argomento viene descritto come impostare la configurazione che consente alle applicazioni client ASP.NET con supporto AJAX di chiamare i servizi Web ASP.NET (file con estensione asmx). Le attività descritte in questo argomento sono le seguenti:

  • Configurazione dei servizi per attivare le chiamate dallo script client.

  • Configurazione della serializzazione JSON.

  • Configurazione del servizio di autenticazione.

  • Configurazione del servizio dei ruoli.

  • Configurazione del servizio dei profili.

Le impostazioni di configurazione vengono tutte effettuate nel gruppo di configurazione system.web.extension. Per ulteriori informazioni, vedere Elemento system.web.extensions (schema delle impostazioni ASP.NET).

Configurazione dei servizi Web per attivare le chiamate dallo script client

Nella procedura descritta di seguito viene illustrato come configurare i servizi Web ASP.NET in modo che possano essere chiamati dallo script client. Per ulteriori informazioni, vedere Esposizione di servizi Web a script client.

Per le chiamate ai servizi Web che non vengono emesse da client ASP.NET con supporto AJAX (script), la classe del gestore ScriptHandlerFactory delega la chiamata al gestore predefinito, il quale utilizza il formato SOAP anziché il formato JSON. Ciò viene eseguito internamente e non occorre intraprendere alcuna azione. È inoltre possibile disattivare il protocollo SOAP per i servizi Web.

Per disattivare il protocollo SOAP per i servizi Web

  • Nel file Web.config del sito Web, cancellare tutti i protocolli per i servizi Web, come mostrato nell'esempio seguente:

    <system.web>
      <webServices>
        <protocols>
          <clear/>
        </protocols>
      </webServices>
    </system.web>
    

Per configurare i servizi Web per attivare le chiamate dallo script client

  • Nel file Web.config del sito Web, registrare il gestore HTTP ScriptHandlerFactory.

    Il gestore elabora le chiamate eseguite dallo script ai servizi Web.

    Nota:

    Nei nuovi siti Web con supporto AJAX creati in Microsoft Visual Studio 2005, queste impostazioni di configurazione fanno parte del modello di file Web.config. 

    Nell'esempio riportato di seguito viene illustrato l'elemento Web.config per la registrazione del gestore.

    <system.web>
      <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx"
          type="System.Web.Script.Services.ScriptHandlerFactory"
           validate="false"/>
      </httpHandlers>
    <system.web>
    

Configurazione della serializzazione JSON

Quando lo script client chiama i servizi Web ASP.NET, i dati vengono scambiati nel formato JSON. È possibile configurare le impostazioni della serializzazione JSON tramite l'elemento jsonSerialization.

Per configurare la serializzazione JSON

  1. Aprire il file Web.config del sito Web.

    Nota:

    Se si crea un servizio Web in Microsoft Visual Studio 2005, il file Web.config contiene la sezione system.web.extensions con elementi figlio disattivati.

  2. Nell'elemento webServices, aggiungere l'elemento jsonSerialization.

    Questo elemento consente di specificare i convertitori personalizzati e di ignorare le impostazioni predefinite.

  3. Definire i seguenti attributi di serializzazione. Tutti gli attributi sono facoltativi.

    • recursionLimit. Specifica la profondità massima alla quale serializzare i tipi. Il limite predefinito di ricorsione è 100.

    • maxJsonLength. Specifica la lunghezza massima della stringa JSON (il numero massimo di caratteri UTF-8). La lunghezza predefinita è 102400.

    Nell'esempio riportato di seguito viene illustrato come configurare l'elemento jsonSerialization. Nell'esempio, maxJsonLength è impostato su 5000.

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="5000"/>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    
  4. Se si desidera utilizzare un convertitore personalizzato, nell'elemento jsonSerialization aggiungere l'elemento converters.

    L'elemento richiede gli attributi seguenti:

    • name   Identificatore univoco.

    • type   Nome completo del tipo del convertitore.

    Nell'esempio riportato di seguito viene illustrato come configurare un convertitore personalizzato.

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="50"/>
              <converters>
                <add name="MyCustomConverter" 
                  type="MyCompany.ConvertersNameSpace.MyTypeConverter"/>
              </converters>
            </jsonSerialization>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    

Configurazione dei servizi di applicazione per attivare le chiamate dallo script client

Nelle procedure descritte di seguito viene illustrato come configurare i servizi di applicazione incorporati per attivare le chiamate dallo script in applicazioni Web con supporto AJAX eseguite nel browser.

Per ulteriori informazioni sui servizi di applicazione ASP.NET, vedere i seguenti argomenti:

Per configurare il servizio di autenticazione

  1. Aprire il file Web.config del sito Web.

  2. Nell'elemento authentication attivare l'autenticazione basata su form.

    Nell'esempio seguente viene illustrato un elemento authentication configurato per l'utilizzo dell'autenticazione basata su form. Qualsiasi tentativo di un utente autenticato di accedere a una risorsa protetta viene reindirizzato alla pagina Login.aspx nella radice del sito Web.

    <system.web>
      <authentication mode="Forms">
        <forms cookieless="UseCookies" 
          loginUrl="~/login.aspx"/>
      </authentication>
    <system.web>
    

    Per ulteriori informazioni, vedere Utilizzo dell'autenticazione basata su form con ASP.NET AJAX.

  3. Nell'elemento system.web.extensions attivare il servizio di autenticazione.

    Nell'esempio seguente viene illustrato come attivare il servizio di autenticazione.

    <system.web.extensions>
      <scripting>
        <webServices>
           <authenticationService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

Per configurare il servizio dei ruoli

  1. Aprire il file Web.config del sito Web.

  2. Nell'elemento system.web.extensions attivare il servizio dei ruoli.

    Nell'esempio seguente viene illustrato come attivare il servizio dei ruoli.

    <system.web.extensions>
      <scripting>
        <webServices>
          <rolesService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

Per configurare il servizio dei profili

  1. Aprire il file Web.config del sito Web.

  2. Se non sono già definite, definire le proprietà di profilo da esporre nell'applicazione.

    Per definire le proprietà di profilo nella sezione profile, utilizzare una sintassi simile a quella dell'esempio seguente. Per le proprietà raggruppate, utilizzare l'elemento group.

    <system.web>
      <profile enabled="true">
        <add name=" Backgroundcolor" type="System.String"
           defaultValue="white" />
        <add name=" Foregroundcolor" type="System.String"
         defaultValue="black" />
        <properties>
          <group name="Address">
           <add name="Street" type="System.String" />
           <add name="City" type="System.String"/>
           <add name="PostalCode" type="System.String" />
          </group>
        </properties>
      </profile>
    </system.web>
    

    Per ulteriori informazioni, vedere Cenni preliminari sulle proprietà dei profili ASP.NET.

  3. Nell'elemento system.web.extensions attivare il servizio dei profili.

    Nell'esempio seguente viene illustrato come attivare il servizio dei profili.

    <system.web.extensions>
      <scripting>
        <webServices>
          < profileService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    
  4. Per ogni proprietà del profilo da rendere disponibile in un'applicazione client, aggiungere il nome della proprietà all'attributo readAccessProperties dell'elemento profileService.

  5. Per ogni proprietà del profilo del server che può essere aggiornata dallo script client, aggiungere il nome della proprietà all'attributo writeAccessProperties.

    Nell'esempio seguente viene illustrato come esporre singole proprietà e impostare se un'applicazione client può leggere e scrivere tali proprietà.

    <profileService enabled="true" 
        readAccessProperties="Backgroundcolor,Foregroundcolor" 
        writeAccessProperties=" Backgroundcolor,Foregroundcolor"/>
    

Vedere anche

Attività

Procedura: configurare servizi WCF in ASP.NET AJAX

Concetti

Cenni preliminari sulla configurazione di ASP.NET

Gerarchia ed ereditarietà dei file di configurazione di ASP.NET

Modifica dei file di configurazione ASP.NET

Riferimenti

Elemento system.web.extensions (schema delle impostazioni ASP.NET)

System.Web.Configuration

Altre risorse

Impostazioni di configurazione di ASP.NET

API di configurazione di ASP.NET