Partager via


Procédure pas à pas : gestion des informations utilisateur du site Web avec les propriétés de profil

Mise à jour : novembre 2007

Les propriétés d'ASP.NET Profile permettent votre application de suivre et de stocker définitivement les informations spécifiques à l'utilisateur. Par exemple, les utilisateurs peuvent spécifier un code postal ou un jeu de couleurs favori et votre application peut stocker ces informations et les récupérer à partir de n'importe où dans l'application. ASP.NET fait automatiquement correspondre l'utilisateur actuel, qu'il soit anonyme ou connecté, aux informations personnelles qui sont stockées dans leur compte d'utilisateur.

Cette procédure pas à pas vous indique comment ajouter des propriétés Profile à votre application et utiliser des propriétés Profile pour offrir une visite plus personnalisée aux visiteurs du site Web.

Au cours de cette procédure pas à pas, vous allez apprendre à effectuer les tâches suivantes :

  • Configurer une application pour utiliser des propriétés Profile.

  • Définir des propriétés Profile simples et complexes que vous souhaitez conserver pour les utilisateurs.

  • Définissez et récupérez des valeurs Profile dans votre application.

  • Utilisez des propriétés Profile qui ont des utilisateurs anonymes et des utilisateurs connectés.

Composants requis

Pour effectuer cette procédure pas à pas, vous aurez besoin des éléments suivants :

  • Microsoft Visual Web Developer.

  • Microsoft .NET Framework

  • Microsoft SQL Server Édition Standard.

    Les informations de propriété Profile que vous créez dans cette procédure pas à pas seront stockées dans une base de données SQL Server Édition Standard.

  • Cookies activés sur votre navigateur.

    Remarque :

    Les propriétés d'ASP.NET Profile peuvent fonctionner sans cookies, si l'application est configurée pour travailler sans cookies. Toutefois, dans cette procédure pas à pas, vous utiliserez les paramètres de configuration par défaut pour les propriétés Profile qui utilisent des cookies.

Création et configuration du site Web

Si vous avez déjà créé un site Web dans Microsoft Visual Studio en effectuant les étapes décrites dans Procédure pas à pas : création d'une page Web de base dans Visual Web Developer, vous pouvez utiliser ce site Web et passer à la section suivante. Sinon, créez un site Web en suivant ces étapes.

Pour créer un site Web de système de fichiers

  1. Ouvrez Visual Studio.

  2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Site Web (ou dans le menu Fichier, cliquez sur Nouveau site Web).

    La boîte de dialogue Nouveau site Web s'affiche.

  3. Sous Modèles Visual Studio installés, cliquez sur Site Web ASP.NET.

  4. Dans la liste Emplacement la plus à gauche, cliquez sur Système de fichiers.

  5. Dans la liste Emplacement la plus à droite, entrez le nom du dossier dans lequel vous souhaitez conserver les pages du site Web.

    Par exemple, tapez le nom du dossier C:\SitesWeb.

  6. Dans la liste Langage, cliquez sur le langage de programmation que vous préférez utiliser.

  7. Cliquez sur OK.

    Visual Web Developer crée le dossier et une page nommée Default.aspx.

Configuration des propriétés de profil

Avant d'utiliser les propriétés Profile d'ASP.NET, vous configurerez votre application pour activer et définir les propriétés Profile qui doivent effectuer le suivi pour chaque utilisateur. Pour commencer, vous créerez une propriété PostalCode unique que le site Web suivra pour les utilisateurs. Vous configurerez également la propriété PostalCode afin que votre site puisse effectuer son suivi pour les utilisateurs anonymes et les utilisateurs connectés.

Vous travaillerez d'abord en tant qu'utilisateur anonyme. En coulisse, ASP.NET vous assignera un ID anonyme unique qui est stocké dans un cookie sur l'ordinateur. ASP.NET peut utiliser cet ID anonyme pour définir et obtenir des valeurs qui vous sont propres.

Pour configurer des propriétés de profil dans le site Web

  1. Dans l'Explorateur de solutions, déterminez si le site Web dispose déjà d'un fichier Web.config.

    Si le site Web n'a pas de fichier Web.config, suivez les étapes suivantes :

    1. Cliquez avec le bouton droit sur le nom du site Web.

    2. Cliquez sur Ajouter un nouvel élément.

    3. Sous Modèles Visual Studio installés, cliquez sur Fichier de configuration Web.

    4. Cliquez sur Ajouter.

      Un nouveau fichier nommé Web.config est ajouté au site et ouvert dans l'éditeur.

  2. Ajoutez l'élément <profile> suivant au fichier Web.config en tant qu'enfant de l'élément <system.web> :

    <system.web>
    
      <anonymousIdentification enabled="true" />  <profile>    <properties>      <add name="PostalCode"         type="System.String"         allowAnonymous="true" />    </properties>  </profile>
    
    <!-- other Web.config settings here -->
    </system.web>
    
    Remarque :

    Les éléments contenus dans le fichier Web.config respectent la casse. Par conséquent, veillez à copier ou taper les éléments exactement comme indiqué.

    Vous avez ajouté les éléments suivants :

    • Élément <anonymousIdentification> qui spécifie si les propriétés Profile fonctionnent uniquement avec les utilisateurs connectés (authentifiés) ou avec les utilisateurs anonymes et les utilisateurs connectés.

      Dans ce cas, vous avez affecté la valeur true au contrôle enabled. Par conséquent, les informations de la propriété Profile seront suivies pour les utilisateurs connectés et pour les utilisateurs anonymes.

    • Élément <properties> qui contient toutes les propriétés Profile que vous définissez.

    • Élément <add> qui définit un nouvel élément <profile>.

      Dans ce cas, vous avez défini une propriété Profile unique nommée PostalCode.

      Lorsque vous définissez une propriété Profile, vous spécifiez son type de données en utilisant un nom de classe de type .NET Framework. Vous spécifiez également si la propriété Profile sera suivie pour les utilisateurs anonymes. Après avoir activé l'identification anonyme, vous pouvez aussi spécifier s'il faut suivre les propriétés Profile individuellement pour les utilisateurs anonymes.

      Vous devez créer un élément add pour chaque propriété Profile supplémentaire que vous souhaitez définir.

      Remarque :

      Par défaut, les informations sur les profils utilisateurs sont stockées dans une base de données SQL Server Édition Standard dans le sous-répertoire Application_Data du site Web. Cette procédure pas à pas utilise la configuration par défaut. Dans les applications de production qui prendront en charge un nombre important d'utilisateurs, il est préférable de stocker les données de la propriété Profile dans une base de données Microsoft SQL Server. Pour plus d'informations, consultez « Étapes suivantes », plus loin dans cette procédure pas à pas.

Définition et obtention de la propriété PostalCode

Après avoir configuré le site Web pour suivre une propriété Profile, vous pouvez définir et obtenir la propriété Profile comme vous le feriez pour des propriétés de composant ordinaires. Dans cette section, vous créerez une page qui illustre comment définir et obtenir la valeur PostalCode que vous avez définie dans la section précédente.

Pour créer une page pour définir et obtenir la propriété PostalCode

  1. Ajoutez à votre site une nouvelle page Web intitulée Profils.aspx.

  2. Ouvrez Profils.aspx et basculez en mode Design.

  3. À partir du groupe Standard de la Boîte à outils, faites glisser les contrôles répertoriés dans le tableau suivant sur la page, puis définissez leurs propriétés comme indiqué.

    Contrôle

    Paramètres de propriété

    TextBox

    ID = textPostalCode

    Button

    ID = SetPostalCode

    Text = Définir le code postal

    Label

    ID = labelPostalCode

    Text = (vide)

  4. Basculez en mode Source, puis ajoutez l'attribut suivant au bouton SetPostalCode, si l'attribut n'existe pas.

    OnClick="SetPostalCode_Click"
    
  5. Créez un gestionnaire Click pour Définir le code postal, puis ajoutez le code en surbrillance suivant.

    Sub SetPostalCode_Click(ByVal sender As Object, _
            ByVal e As System.EventArgs)
        Profile.PostalCode = Server.HtmlEncode(textPostalCode.Text)    labelPostalCode.Text = Profile.PostalCode
    End Sub
    
    void SetPostalCode_Click(object sender, System.EventArgs e)
    {
        Profile.PostalCode = Server.HtmlEncode(textPostalCode.Text);    labelPostalCode.Text = Profile.PostalCode;
    }
    

    Lorsque le profil utilisateur est activé, ASP.NET crée dynamiquement une propriété nommée Profile qui ajoute le profil utilisateur au contexte actuel. Les propriétés Profile sont ensuite disponibles par le biais de Profile.PostalCode.

  6. Créez un gestionnaire Page_Load, puis ajoutez le code en surbrillance suivant.

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        labelPostalCode.Text = Profile.PostalCode
    End Sub
    
    void Page_Load(object sender, System.EventArgs e)
    {
        labelPostalCode.Text = Profile.PostalCode;
    }
    

    Ce code affichera la valeur Profile.PostalCode chaque fois que la page sera demandée.

Test de la propriété de profil PostalCode

Vous pouvez à présent tester la propriété PostalCode que vous avez définie dans la section précédente.

Remarque :

Si vous utilisez un site Web existant dont l'appartenance est activée, assurez-vous que vous êtes déconnecté.

Pour tester la propriété PostalCode

  1. Appuyez sur CTRL+F5 pour exécuter la page Profils.aspx.

    Remarque :

    Si le navigateur affiche une erreur 502 ou une erreur indiquant que la page ne peut pas être affichée, vous devrez peut-être configurer votre navigateur pour ignorer les serveurs proxy pour les demandes locales. Pour plus d'informations, consultez Comment : contourner un serveur proxy pour les demandes Web locales.

  2. Dans la zone, tapez un code postal, puis cliquez sur Définir le code postal.

    Le code postal que vous avez entré s'affiche dans le contrôle Label.

  3. Fermez le navigateur pour fermer votre session en cours.

  4. Ouvrez de nouveau le navigateur, puis demandez la page Profils.aspx.

    Le code postal que vous avez entré précédemment s'affiche dans le contrôle Label.

La dernière étape de la procédure précédente a illustré qu'ASP.NET stocke la valeur PostalCode. Lorsque vous visitez de nouveau la page, ASP.NET peut lire la valeur PostalCode selon votre ID anonyme propre.

Définition de propriétés complexes

Dans « Définition et obtention de la propriété PostalCode » précédemment dans cette procédure pas à pas, vous avez créé une propriété simple nommée PostalCode qui a été stockée comme une chaîne. Dans cette section, vous définirez une propriété nommée FavoriteURLs qui est une collection. ASP.NET peut stocker des propriétés Profile de tout type, mais vous devez fournir des informations supplémentaires lorsque vous définissez la propriété Profile.

Pour définir la propriété FavoriteURLs

  1. Ouvrez le fichier Web.config.

  2. Ajoutez l'élément en surbrillance suivant à l'élément profile que vous avez créé dans « Configuration des propriétés de profil », précédemment dans cette procédure pas à pas :

    <anonymousIdentification enabled="true" />
      <profile>
        <properties>
        <add name="PostalCode" 
          type="System.String" 
          allowAnonymous="true" />
        <add name="FavoriteURLs"       type="System.Collections.Specialized.StringCollection"      allowAnonymous="true" />
        </properties>
      </profile>
    

    Vous avez ajouté une nouvelle propriété Profile nommée FavoriteURLs. Pour les propriétés Profile qui ne sont pas des types simples (tels que chaîne ou entier), vous devez spécifier le type qualifié complet. Ici, vous spécifiez que la propriété Profile sera une collection qui contiendra des chaînes.

  3. Enregistrez, puis fermez le fichier Web.config.

Définition et obtention de la propriété FavoriteURLs

L'utilisation de la propriété FavoriteURLs, qui est une collection, est très comparable à l'utilisation d'une collection dans tout contexte. Dans cette partie de la procédure pas à pas, vous mettrez à jour la page Profils.aspx que vous avez créée dans « Définition et obtention de la propriété PostalCode », précédemment dans cette procédure pas à pas, en ajoutant un contrôle TextBox dans lequel les utilisateurs peuvent taper une URL. Lorsque l'utilisateur clique sur Ajouter, l'URL est ajoutée à la propriété FavoriteURLs. Vous afficherez également la liste actuelle des URL favorites dans une zone de liste déroulante.

Pour définir et obtenir la propriété FavoriteURLs

  1. Sur la page Profils.aspx, ajoutez les contrôles suivants et définissez leurs propriétés comme indiqué dans le tableau suivant.

    Contrôle

    Paramètres de propriété

    TextBox

    ID = textFavoriteURL

    Button

    ID = AddURL

    Text = Ajouter une URL

    ListBox

    ID = listFavoriteURLs

  2. Basculez en mode Source, puis ajouter l'attribut suivant au bouton Ajouter une URL, si l'attribut n'existe pas.

    OnClick="AddURL_Click"
    
  3. Créez un gestionnaire Click pour Ajouter une URL, puis ajoutez le code en surbrillance suivant.

    Sub AddURL_Click(ByVal sender As Object, _
            ByVal e As System.EventArgs)
        Dim urlString As String = _        Server.HtmlEncode(textFavoriteURL.Text)
        If Profile.FavoriteURLs Is Nothing Then
            Profile.FavoriteURLs = New _
                System.Collections.Specialized.StringCollection
        End If
        Profile.FavoriteURLs.Add(urlString)    DisplayFavoriteURLs()
    End Sub
    
    void AddURL_Click(object sender, System.EventArgs e)
    {    
        String urlString = Server.HtmlEncode(textFavoriteURL.Text);
        if(Profile.FavoriteURLs == null)
        {
            Profile.FavoriteURLs = new 
                System.Collections.Specialized.StringCollection();
        }
        Profile.FavoriteURLs.Add(urlString);    DisplayFavoriteURLs();
    }
    
  4. Dans le gestionnaire Page_Load, ajoutez la ligne de code en surbrillance suivante :

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        labelPostalCode.Text = Profile.PostalCode
        DisplayFavoriteURLs()
    End Sub
    
    void Page_Load(object sender, System.EventArgs e)
    {
        labelPostalCode.Text = Profile.PostalCode;
        DisplayFavoriteURLs();
    }
    
  5. Ajoutez la sous-routine suivante pour mettre à jour l'affichage des URL dans le contrôle ListBox.

    Sub DisplayFavoriteURLs()
        listFavoriteURLs.DataSource = Profile.FavoriteURLs
        listFavoriteURLs.DataBind()
    End Sub
    
    void DisplayFavoriteURLs()
    {    
        listFavoriteURLs.DataSource = Profile.FavoriteURLs;
        listFavoriteURLs.DataBind();
    }
    

Test de la propriété de profil FavoriteURLs

Vous pouvez à présent tester la propriété FavoriteURLs.

Pour tester la propriété FavoriteURLs

  1. Pour exécuter la page Profils.aspx, appuyez sur CTRL+F5.

    Au départ, il n'y a pas de valeurs dans le contrôle ListBox.

  2. Dans la zone, tapez une URL, puis cliquez sur Ajouter.

    L'URL est ajoutée au contrôle ListBox.

  3. Répétez l'étape précédente pour ajouter une autre URL.

  4. Fermez le navigateur.

  5. Ouvrez de nouveau le navigateur, puis ouvrez la page Profils.aspx.

    Notez que le contrôle ListBox est rempli avec les URL que vous avez entrées avant de fermer le navigateur.

Migration des propriétés de profil lors de la connexion

Si un utilisateur visite pour la première fois votre site en tant qu'utilisateur anonyme, mais se connecte ensuite, vous pouvez conserver les paramètres de propriété que l'utilisateur a établis lorsqu'il était anonyme. Un exemple type est un site d'achat où l'utilisateur peut parcourir et ajouter des éléments à un panier d'achat en tant qu'utilisateur anonyme, mais doit ensuite se connecter pour régler ses achats. Pour conserver les valeurs d'un utilisateur lorsqu'il se connecte, vous faites migrer l'utilisateur du profil d'utilisateur anonyme actuel vers le profil utilisateur dont il dispose en tant qu'utilisateur connecté (authentifié).

Dans cette section, vous faites migrer le paramètre PostalCode de l'utilisateur. Vous devez disposer d'un site Web déjà configuré pour utiliser des identités d'utilisateurs et qui dispose d'une page de connexion. Si le site Web que vous utilisez n'a pas déjà été configuré pour l'appartenance, utilisez la procédure suivante pour l'activer. Si votre site prend déjà en charge l'appartenance, vous pouvez passer à la section suivante.

Pour configurer le site Web pour l'appartenance

  1. Dans Visual Studio, dans le menu Site Web, cliquez sur Configuration ASP.NET.

    L'outil Administration de site Web apparaît.

  2. Cliquez sur l'onglet Sécurité.

  3. Cliquez sur Sécurité, puis, sous Utilisateurs, cliquez sur Sélectionnez le type d'authentification.

  4. Sélectionnez À partir d'Internet, puis cliquez sur Terminé.

    L'option À partir d'Internet spécifie que votre application utilisera l'authentification par formulaire, dans laquelle les utilisateurs se connecteront à l'application en utilisant une page de connexion.

  5. Sur l'onglet Sécurité, sous Utilisateurs, cliquez sur Créer un utilisateur, puis créez un compte d'utilisateur.

    Vous pouvez utiliser n'importe quel nom et n'importe quel mot de passe, mais assurez-vous que vous vous en souviendrez. Pour l'adresse de messagerie, utilisez la vôtre. (Vous n'enverrez pas de messages électroniques dans cette procédure pas à pas.)

  6. Après avoir terminé la définition du compte d'utilisateur, fermez l'outil Administration de site Web.

  7. À partir du groupe Connexion de la Boîte à outils, faites glisser un contrôle Login et un contrôle LoginName dans la page.

    Le contrôle LoginName n'est pas requis pour la connexion, mais il vous permettra de voir que vous êtes connecté.

Création d'un gestionnaire de migration

Pour faire migrer les paramètres d'un utilisateur anonyme vers les paramètres d'un utilisateur connecté, vous devez effectuer la migration lorsque l'identité de l'utilisateur est modifiée. ASP.NET fournit l'événement MigrateAnonymous dans ce but précis ; dans le gestionnaire de l'événement MigrateAnonymous, vous pouvez transférer les paramètres que vous souhaitez conserver.

Pour créer un gestionnaire de migration

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du site Web, puis cliquez sur Ajouter un nouvel élément.

  2. Sous Modèles Visual Studio installés, cliquez sur Classe d'application globale, puis cliquez sur Ajouter.

    Il n'est pas nécessaire d'entrer un nom, parce que le fichier est toujours nommé Global.asax.

  3. Tapez le code suivant pour créer un gestionnaire pour l'événement MigrateAnonymous.

    Sub Profile_MigrateAnonymous(ByVal sender As Object, _
        ByVal e As ProfileMigrateEventArgs)
        If Profile.GetProfile(e.AnonymousID).PostalCode <> "" Then
            Profile.PostalCode = _
                Profile.GetProfile(e.AnonymousID).PostalCode
        End If
    End Sub
    
    void Profile_MigrateAnonymous(Object sender, 
            ProfileMigrateEventArgs e)
    {
        if(Profile.GetProfile(e.AnonymousID).PostalCode != String.Empty)
        {
            Profile.PostalCode = 
                Profile.GetProfile(e.AnonymousID).PostalCode;
        }
    }
    

    Le code obtient le profil utilisateur de l'utilisateur anonyme et extrait la valeur PostalCode. Ensuite, il obtient le profil de la nouvelle identité de l'utilisateur et définit la valeur équivalente pour cette identité.

Test de la migration

Pour tester la migration, vous devez d'abord définir des paramètres en tant qu'utilisateur anonyme. Ensuite, vous vous connecterez et vous verrez que les valeurs sont conservées.

Pour tester la migration

  1. Ouvrez la page Profils.aspx, puis appuyez sur CTRL+F5 pour l'exécuter.

    Le contrôle LoginName n'affiche rien, parce que vous ne vous êtes pas encore connecté.

  2. Si un code postal n'est pas affiché dans la page, tapez un nouveau code postal, puis cliquez sur Définir le code postal.

    Le code postal de votre identité anonyme actuelle est affiché dans la page.

  3. Connectez-vous à l'aide du nom d'utilisateur et du mot de passe que vous avez créés dans « Migration des propriétés de profil lors de la connexion », précédemment dans cette procédure pas à pas.

    Le contrôle LoginName affiche votre nom d'utilisateur. Le code postal que vous avez entré en tant qu'utilisateur anonyme est encore affiché, étant donné que les paramètres de code postal ont été migrés vers votre profil d'utilisateur connecté.

Étapes suivantes

Cette procédure pas à pas a illustré les procédures de base de configuration et d'utilisation des propriétés Profile dans les applications Web. Vous pouvez utiliser les propriétés Profile à de nombreuses fins dans vos applications. La liste suivante suggère des zones supplémentaires dans lesquelles vous pouvez utiliser les propriétés Profile:

Voir aussi

Concepts

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

Fournisseurs de profils ASP.NET