ASP.NET AJAX e Profile API

by Andrea 24 July 2007 21:07

Una delle novità introdotte con ASP.NET AJAX è la possibilità di interagire con estrema facilità con le Profile API di ASP.NET permettendoci di leggere e salvare dalle proprietà del profilo dell'utente corrente.

La possibilità di leggere e scrivere dal profilo è una funzionalità che  di default è disabilitata. Per abilitarla dobbiamo modificare il web.config settando a true l'attributo enable dell'elemento profileService.

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

Inoltre si dovranno speficare le proprietà che vorremmo leggere e/o scrivere nel profilo specificandole negli attributi readAccessProperties per quelle in letture e in writeAccessProperties per quelle in scrittura.

<profileService enabled="true" 
  readAccessProperties="Nome,Cognome" 
  writeAccessProperties=" Nome,Cognome"/>

Nella sezione profile, infine, dovremmo specificare il tipo e il defaultValue di queste proprietà.

<profile enabled="true">
  <properties>
    <add name="Nome" 
       type="System.String"
       defaultValue="Nome"/>
    <add name="Cognome" 
       type="System.String"
       defaultValue="Cognome"/>
  </properties>
</profile>

Dopo aver eseguito questi semplici passi sarà possibile utilizzare le proprietà specificate in configurazione direttamente negli script lato client utilizzando le funzioni dateci da ASP.NET AJAX presenti in Sys.Services.ProfileService.

Per salvare i dati nelle proprietà dal profilo:

function editProfile()
{
    // Scrivo i dati nelle propretà del profilo
    Sys.Services.ProfileService.properties.Nome = 'Andrea';
    Sys.Services.ProfileService.properties.Cognome = 'Dottor';
    // Salvo i dati nel profilo
    Sys.Services.ProfileService.save(null, OnSaveCompleted, OnProfileFailed, null);
}       
// Funzione che verrà richiamato in caso di salvataggio riuscito del profilo
function OnSaveCompleted(numProperties, userContext, methodName)
{
...
}
// Funzione chiamata in caso di errore nel salvataggio del profilo
function OnProfileFailed(error_object, userContext, methodName)
{
...
}

Per leggere dalle proprietà del profilo:

function LoadProfile()
{
  // Chiamo il caricamento del profilo
    Sys.Services.ProfileService.load(null, OnLoadCompleted, OnProfileFailed, null);
}
// Funzione che verrà richiamato in caso di caricamento riuscito del profilo
function OnLoadCompleted(numProperties, userContext, methodName)
{
  var _nome = Sys.Services.ProfileService.properties.Nome;
  var _cognome = Sys.Services.ProfileService.properties.Cognome;
  ...    
}
// Funzione chiamata in caso di errore nel salvataggio del profilo
function OnProfileFailed(error_object, userContext, methodName)
{
...
}

Come si nota, con poche e semplice righe possiamo interagire con le Profile API di ASP.NET direttamente dagli script lato client, potendo così arricchire la UI di una nuova interazione con l'utente, ed il tutto con una facilità estrema.

Potete trovare un tutorial sull'uso del Profile direttamente a questo link: http://ajax.asp.net/docs/tutorials/UsingProfileInformationTutorial.aspx

Technorati tags: ,

Tags:

ASP.NET AJAX

Comments are closed