Cenni preliminari sulle proprietà dei profili ASP.NET

Aggiornamento: novembre 2007

In diverse applicazioni, è possibile archiviare e utilizzare informazioni specifiche relative a un utente. Quando un utente visita il sito, è possibile utilizzare le informazioni archiviate per presentare una versione personalizzata dell'applicazione Web. La personalizzazione di un'applicazione richiede una serie di elementi: è necessario che le informazioni vengano archiviate utilizzando un ID utente univoco, che sia possibile riconoscere gli utenti nelle visite successive e recuperare le informazioni sull'utente quando necessario. Per semplificare le applicazioni, è possibile utilizzare la funzionalità di profilo ASP.NET, in grado di eseguire tutte queste attività.

La funzionalità di profilo ASP.NET associa le informazioni a un singolo utente e le archivia in un formato persistente. I profili consentono di gestire le informazioni relative all'utente senza richiedere la creazione e la gestione di un database specifico. Inoltre, la funzionalità di profilo ASP.NET rende disponibili le informazioni utente utilizzando un'API fortemente tipizzata accessibile da qualsiasi punto dell'applicazione.

Nei profili possono essere archiviati oggetti di qualsiasi tipo. I profili forniscono una funzionalità di archiviazione generica che consente di definire e gestire quasi ogni tipo di dati, nonché di mantenere i dati disponibili in modalità indipendente dai tipi.

Per utilizzare i profili, è necessario innanzitutto abilitarli modificando il file di configurazione dell'applicazione Web ASP.NET. In fase di configurazione, specificare un provider di profili, ovvero la classe sottostante che esegue le attività di basso livello di archiviazione e recupero dei dati del profilo. È possibile utilizzare il provider di profili incluso con .NET Framework, che archivia i dati del profilo in SQL Server, oppure creare e utilizzare un provider di profili personalizzato, come descritto nell'argomento Implementazione di un provider di profili. È possibile specificare un'istanza di SqlProfileProvider che si connette a un database specifico, oppure utilizzare l'istanza predefinita di SqlProfileProvider che archivia i dati del profilo sul server Web locale.

La funzionalità di profilo può essere configurata definendo un elenco delle proprietà di cui si desiderano mantenere i valori. Può essere necessario, ad esempio, archiviare il codice postale dell'utente in modo che l'applicazione possa fornire informazioni specifiche sulla regione, ad esempio le previsioni del tempo. In questo caso, occorre definire nel file di configurazione una proprietà del profilo denominata PostalCode. La sezione profile del file di configurazione può essere simile a quella riportata di seguito:

<profile>
  <properties>
    <add name="PostalCode" />
  </properties>
</profile>

In fase di esecuzione dell'applicazione, ASP.NET crea una classe ProfileCommon, ovvero una classe generata in modo dinamico che eredita la classe ProfileBase. La classe ProfileCommon dinamica include proprietà create a partire dalle definizioni delle proprietà del profilo specificate nella configurazione dell'applicazione. Un'istanza di questa classe ProfileCommon dinamica viene successivamente impostata come valore della proprietà Profile dell'oggetto HttpContext corrente ed è disponibile per le pagine dell'applicazione.

Nell'applicazione, raccogliere il valore o i valori che si desiderano archiviare e assegnarli alle proprietà del profilo definite. Ad esempio, la home page dell'applicazione può contenere una casella di testo che richiede all'utente di immettere un codice postale. Quando l'utente immette il codice postale, impostare la proprietà Profile per archiviare il valore immesso dall'utente corrente, come illustrato nel seguente esempio:

Profile.PostalCode = txtPostalCode.Text;

Una volta impostato il valore della proprietà Profile.PostalCode, esso sarà automaticamente archiviato per l'utente corrente. Non è necessario scrivere codice per determinare l'identità dell'utente corrente o per archiviare in modo esplicito il valore in un database in quanto tali attività sono eseguite dalla funzionalità di profilo.

Quando si desidera utilizzare il valore, è possibile recuperarlo in modo analogo a quanto avviene per la sua impostazione. Ad esempio, nel seguente esempio di codice è illustrato come chiamare una funzione immaginaria denominata GetWeatherInfo, a cui viene passato il codice postale dell'utente corrente archiviato in un profilo:

weatherInfo = GetWeatherInfo( Profile.PostalCode );

Non è necessario determinare in modo esplicito l'identità dell'utente o eseguire ricerche in un database. È sufficiente recuperare il valore della proprietà da un profilo per fare in modo che ASP.NET a esegua le operazioni necessarie per identificare l'utente corrente e ricercare il valore nell'archivio del profilo persitente.

Aggiunte alla community

AGGIUNGI
Mostra: