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

Comment : créer et exécuter l'exemple de fournisseur de profils

Mise à jour : novembre 2007

Les rubriques de cette section contiennent le code d'un exemple de fournisseur de profils ASP.NET. Cet exemple utilise le fournisseur de données .NET Framework pour ODBC pour se connecter à une source de données ODBC. Il utilise une base de données Access comme source de données.

Cette rubrique donne des détails sur l'implémentation de l'exemple de fournisseur de profils et indique comment générer cet exemple et configurer une application ASP.NET pour l'utiliser.

8zs47k7y.alert_note(fr-fr,VS.90).gifRemarque :

Étant donné que les sources de données prennent en charge des syntaxes SQL différentes, certaines commandes SQL ne fonctionneront qu'avec des sources de données particulières. Nous vous conseillons donc de créer un fournisseur de profils spécifique à votre source de données, même si vous utilisez le fournisseur de données .NET Framework pour ODBC ou le fournisseur de données .NET Framework pour OLEDB pour accéder à votre source de données. Vous pouvez, par exemple, créer des fournisseurs distincts, soit un SybaseProfileProvider, un OracleProfileProvider, etc.

Pour afficher le code de l'exemple de fournisseur, consultez Implémentation d'un fournisseur de profils, exemple.

Le fournisseur est conçu pour lire et écrire des données dans trois tables de base de données : Profiles, StockSymbols et ProfileData. Le fournisseur de profils inclus à titre d'exemple prend en charge deux propriétés de profil : une liste de symboles de cotation et un code postal.

Chaque profil utilisateur est identifié de façon unique dans la table Profiles de la base de données. Cette table contient des informations de profil telles que le nom d'application et la dernière date d'activité. La table Profiles comprend une clé primaire automatiquement incrémentée, servant à identifier chaque ligne de façon unique et à relier la table à d'autres tables de la base de données qui contiennent des valeurs des propriétés de profil.

La table StockSymbols contient les valeurs de la liste des symboles de cotation stockés et récupérés à l'aide de la propriété StockSymbols. La table StockSymbols entretient une relation un-à-plusieurs avec la table Profiles, un seul profil utilisateur pouvant suivre autant de symboles de cotation que nécessaire.

La valeur de la propriété ZipCode est stockée dans la table ProfileData. La table ProfileData entretient une relation un à un avec la table Profiles.

Pour créer les tables de base de données pour stocker des profils

  1. Créez une nouvelle base de données Microsoft Access ou ouvrez une base existante.

    8zs47k7y.alert_note(fr-fr,VS.90).gifRemarque :

    Si vous stockez votre base de données dans les dossiers de fichiers de votre application Web, nous vous conseillons de la stocker dans le dossier App_Data de l'application. Le contenu du dossier App_Data est disponible pour le code de votre application, mais il n'est pas exposé aux demandes Web. En outre, le processus ASP.NET possède des autorisations de lecture et d'écriture dans le dossier App_Data.

  2. Dans Access, ou dans tout autre outil capable de créer des tables dans une base de données Access, publiez la requête suivante de définition des données pour créer la table Profiles :

    CREATE TABLE Profiles
    (
      UniqueID AutoIncrement NOT NULL PRIMARY KEY,
      Username Text (255) NOT NULL,
      ApplicationName Text (255) NOT NULL,
      IsAnonymous YesNo, 
      LastActivityDate DateTime,
      LastUpdatedDate DateTime,
        CONSTRAINT PKProfiles UNIQUE (Username, ApplicationName)
    )
    
  3. Publiez la requête suivante de définition des données pour créer la table StockSymbols :

    CREATE TABLE StockSymbols
    (
      UniqueID Integer,
      StockSymbol Text (10),
        CONSTRAINT FKProfiles1 FOREIGN KEY (UniqueID)
          REFERENCES Profiles
    )
    
  4. Publiez la requête suivante de définition des données pour créer la table ProfileData :

    CREATE TABLE ProfileData
    (
      UniqueID Integer,
      ZipCode Text (10),
        CONSTRAINT FKProfiles2 FOREIGN KEY (UniqueID)
          REFERENCES Profiles
    )
    

Si l'exemple de fournisseur rencontre une exception lorsqu'il utilise la source de données, il écrit les détails de cette exception dans le journal des événements de l'application Windows plutôt que de retourner l'exception à l'application ASP.NET. Il s'agit d'une mesure de sécurité visant à éviter l'exposition des informations privées relatives à la source de données dans l'application ASP.NET.

L'exemple de fournisseur spécifie un événement Source "OdbcProfileProvider". Pour que votre application ASP.NET parvienne à écrire dans le journal des événements de l'application, vous devez commencer par créer un accès au journal des événements.

8zs47k7y.alert_note(fr-fr,VS.90).gifRemarque :

Si vous ne souhaitez pas que l'exemple de fournisseur écrive des exceptions dans le journal des événements, vous pouvez affecter à l'attribut writeExceptionsToEventLog la valeur false dans la configuration du fournisseur au sein du fichier Web.config.

Pour donner accès au journal des événements

  • A l'aide de Regedit.exe ou d'un autre outil d'édition du Registre Windows, créez la clé de Registre suivante :

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OdbcProfileProvider
    

Pour pouvoir utiliser l'exemple de fournisseur, vous devez rendre le code disponible pour votre application Web. Vous pouvez le faire de deux façons :

  • Placez le code source de l'exemple de fournisseur dans le dossier App_Code de l'application. Vous n'aurez alors pas besoin de compiler l'exemple de code manuellement.

  • Compilez le code et placez l'assembly résultant dans le dossier Bin de l'application, ou attribuez-lui un nom fort et placez-le dans le Global Assembly Cache.

Pour tester l'exemple de fournisseur sans compilation manuelle

  1. Si votre application n'en possède pas déjà un, créez un dossier nommé App_Code sous la racine de l'application.

  2. Dans le dossier App_Code, créez un fichier texte nommé OdbcProfileProvider.vb ou OdbcProfileProvider.cs, selon le langage de programmation que vous souhaitez utiliser.

    8zs47k7y.alert_note(fr-fr,VS.90).gifRemarque :

    Si le code source se trouve déjà dans le répertoire App_Code de votre application, utilisez la version de l'exemple de fournisseur écrite dans le même langage que le code présent dans le répertoire. ASP.NET compilera le fournisseur la première fois qu'une page de votre application ASP.NET sera demandée.

  3. Copiez et collez l'exemple de code source (dans le langage approprié) dans le fichier texte correspondant et enregistrez le fichier.

Pour compiler l'exemple de fournisseur

  1. Créez un dossier pour les fichiers sources des contrôles personnalisés et des classes associées.

  2. Dans le dossier du code source, créez un fichier texte nommé OdbcProfileProvider.vb ou OdbcProfileProvider.cs, selon le langage de programmation que vous souhaitez utiliser.

    8zs47k7y.alert_note(fr-fr,VS.90).gifRemarque :

    Ne placez pas le code source dans le dossier App_Code si vous projetez également de compiler l'exemple manuellement et d'ajouter son assembly au dossier Bin. Si vous le faites, le type du fournisseur existera à la fois dans l'assembly compilé et dans l'assembly généré dynamiquement créé par ASP.NET à partir du dossier App_Code. Cela créera une référence ambiguë au moment du chargement du fournisseur, et tout code qui référencera ce type générera une erreur du compilateur.

  3. Copiez et collez le code source de chaque exemple dans le fichier texte correspondant et enregistrez le fichier.

  4. Exécutez la commande suivante à partir du dossier du code source pour compiler les contrôles et les classes associées dans un assembly.

    vbc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.vb /r:System.Web.dll /r:System.Configuration.dll
    

    csc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.cs /r:System.Web.dll /r:System.Configuration.dll
    

    L'option /t:library du compilateur indique à ce dernier de créer une bibliothèque (plutôt qu'un assembly exécutable). L'option /out fournit un nom à l'assembly et l'option /r liste les assemblys liés à votre assembly.

    8zs47k7y.alert_note(fr-fr,VS.90).gifRemarque :

    Si vous ne pouvez pas exécuter la commande du compilateur, vous devez ajouter le chemin d'accès d'installation du .NET Framework à la variable PATH avant d'exécuter la commande. Dans Windows, cliquez avec le bouton droit sur Poste de travail, puis sur Propriétés, sur l'onglet Avancé, puis sur le bouton Variables d'environnement. Dans la liste Variables système, double-cliquez sur la variable Path. Dans la zone de texte Valeur de la variable, ajoutez un point-virgule (;) à la fin des valeurs existantes dans la zone de texte, puis entrez le chemin d'accès de votre installation .NET Framework. Le .NET Framework est habituellement installé dans le dossier d'installation de Windows à l'emplacement \Microsoft.NET\Framework\numéroVersion.

Pour utiliser l'exemple de fournisseur avec une application Web ASP.NET, vous devez enregistrer le fournisseur en configurant l'application.

L'exemple de configuration suppose que votre site Web est configuré pour utiliser l'authentification par formulaire et qu'il comprend une page ASP.NET nommée Login.aspx qui permet aux utilisateurs de se connecter et d'établir une identité utilisateur. L'exemple de configuration prenant également en charge l'authentification anonyme, les utilisateurs ne sont pas contraints d'ouvrir une session.

Pour configurer une application afin d'utiliser l'exemple de fournisseur

  1. Créez une page ASP.NET nommé Login.aspx et procédez à l'une des actions suivantes :

    • Ajoutez-lui un contrôle Login, si l'application est déjà configurée pour utiliser l'appartenance d'ASP.NET.

    • Créez un formulaire de connexion et utilisez l'authentification par formulaire pour authentifier les utilisateurs. Pour plus d'informations, consultez Comment : implémenter une simple authentification par formulaire.

      8zs47k7y.alert_note(fr-fr,VS.90).gifRemarque :

      L'élément de configuration requis pour l'authentification par formulaire est illustré à l'étape 4.

  2. Créez un DSN nommé "OdbcProfile" sur votre ordinateur et configurez-le pour inclure des informations de connexion à la base de données Access que vous avez créée auparavant.

  3. Si votre application ASP.NET n'en possède pas déjà un, créez un fichier texte nommé Web.config dans le dossier racine de l'application.

  4. Dans le fichier Web.config, ajoutez les éléments suivants :

    <configuration>
      <connectionStrings>
        <add name="OdbcProfile" connectionString="DSN=OdbcProfile;" />
      </connectionStrings>
    
      <system.web>
        <authentication mode="Forms" >
          <forms loginUrl="login.aspx"
            name=".ASPXFORMSAUTH" />
        </authentication>
    
        <anonymousIdentification enabled="true" />
    
        <profile defaultProvider="OdbcProvider">
          <providers>
            <add
              name="OdbcProvider"
              type="Samples.AspNet.Profile.OdbcProfileProvider" 
              connectionStringName="OdbcProfile" /> 
          </providers>
    
          <properties>
            <add name="ZipCode" 
              allowAnonymous="true" />
            <add name="CityAndState" 
              provider="AspNetSqlProfileProvider" 
              allowAnonymous="true" />
            <add name="StockSymbols" 
              type="System.Collections.ArrayList" 
              allowAnonymous="true" />
          </properties>
        </profile>
      </system.web>
    </configuration>
    
Afficher: