Cette documentation est archivée et n’est pas conservée.

Vue d'ensemble des propriétés du profil ASP.NET

Mise à jour : novembre 2007

Dans de nombreuses applications, vous souhaiterez stocker et utiliser des informations uniques pour un utilisateur spécifique. Lorsqu'un utilisateur visite votre site, vous pouvez utiliser les informations que vous avez stockées pour présenter à cet utilisateur une version personnalisée de votre application Web. La personnalisation d'une application requiert un certain nombre d'éléments : vous devez stocker les informations à l'aide d'un identificateur d'utilisateur unique, être capable de reconnaître des utilisateurs lorsqu'ils reviennent sur le site, puis extraire les informations utilisateur nécessaires. Pour simplifier vos applications, vous pouvez utiliser la fonctionnalité de profil ASP.NET, qui peut exécuter la totalité de ces tâches à votre place.

La fonctionnalité de profil ASP.NET associe des informations à un utilisateur donné et les stocke sous un format persistant. Les profils vous permettent de gérer facilement les informations utilisateur sans qu'il soit nécessaire de créer ou de gérer votre propre base de données. De plus, la fonctionnalité de profil ASP.NET met les informations utilisateur à votre disposition à l'aide d'une interface API fortement typée à laquelle vous pouvez accéder depuis n'importe quel endroit de votre application.

Vous pouvez stocker des objets de tout type à l'aide des profils. La fonctionnalité de profil offre une fonction de stockage générique qui vous permet de définir et de gérer la quasi totalité des types de données, tout en rendant ces données disponibles d'une manière sécurisée au niveau du type.

Pour utiliser des profils, vous devez commencer par activer les profils en modifiant le fichier de configuration de votre application Web ASP.NET. Dans la configuration même, spécifiez un fournisseur de profils. Il s'agit de la classe sous-jacente qui effectue les tâches de bas niveau de stockage et de récupération des données de profil. Vous pouvez utiliser le fournisseur de profils fourni avec le .NET Framework, qui stocke les données de profil dans SQL Server. Vous pouvez aussi créer et utiliser votre propre fournisseur de profils comme décrit dans la rubrique Implémentation d'un fournisseur de profils. Vous pouvez spécifier une instance du SqlProfileProvider qui se connecte à une base de données de votre choix, ou utiliser l'instance par défaut du SqlProfileProvider qui stocke les données de profil sur le serveur Web local.

La fonctionnalité de profil se configure en définissant une liste de propriétés dont vous souhaitez conserver les valeurs. Par exemple, vous pouvez souhaiter stocker le code postal de l'utilisateur afin que votre application puisse offrir des informations régionales, telles que des bulletins météorologiques. Dans le fichier de configuration, vous définirez alors une propriété de profil nommée PostalCode. La section profile du fichier Web.config pourra se présenter comme suit :

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

Lorsque votre application s'exécute, ASP.NET crée une classe ProfileCommon. Il s'agit d'une classe générée dynamiquement qui hérite de la classe ProfileBase. La classe dynamique ProfileCommon inclut des propriétés créées à partir des définitions de propriété de profil que vous spécifiez dans la configuration de votre application. Une instance de cette classe dynamique ProfileCommon est alors définie comme valeur de la propriété Profile du HttpContext actuel et rendue disponible pour les pages de votre application.

Dans votre application, vous réunissez la ou les valeurs que vous souhaitez stocker et vous les assignez aux propriétés de profil que vous avez définies. Par exemple, la page d'accueil de votre application peut contenir une zone de texte qui invite l'utilisateur à saisir un code postal. Lorsque ce dernier saisit un code postal, vous définissez une propriété Profile pour qu'elle stocke la valeur correspondant à l'utilisateur actuel, comme dans l'exemple suivant:

Profile.PostalCode = txtPostalCode.Text;

Lorsque vous définissez une valeur pour Profile.PostalCode, celle-ci est automatiquement stockée pour l'utilisateur actuel. Il n'est pas nécessaire d'écrire de code pour déterminer qui est l'utilisateur actuel ou pour stocker explicitement la valeur dans une base de données : la fonctionnalité de profil s'en charge pour vous.

Lorsque vous souhaitez utiliser la valeur, vous pouvez la récupérer de façon très semblable à celle qui vous a servi à la définir. Par exemple, l'exemple de code suivant montre comment appeler une fonction imaginaire nommée GetWeatherInfo, en lui passant le code postal de l'utilisateur actuel tel qu'il a été stocké dans un profil :

weatherInfo = GetWeatherInfo( Profile.PostalCode );

Vous n'avez pas besoin de déterminer explicitement qui est l'utilisateur, ni d'exécuter de consultations de base de données. Il suffit de récupérer la valeur de la propriété dans un profil pour qu'ASP.NET exécute les actions nécessaires pour identifier l'utilisateur actuel et rechercher la valeur dans le magasin de profils persistant.

Afficher: