Partager via


Adhésion

par Microsoft

Notes

Depuis la rédaction de cet article, les fournisseurs d’appartenance ASP.NET ont été remplacés par ASP.NET Identity. Nous vous recommandons vivement de mettre à jour les applications pour utiliser la plateforme d’identité ASP.NET plutôt que les fournisseurs d’appartenance proposés au moment de la rédaction de cet article. ASP.NET Identity présente un certain nombre d’avantages par rapport au système d’appartenance ASP.NET, notamment :

  • Meilleures performances
  • Extensibilité et testabilité améliorées
  • Prise en charge d’OAuth, OpenID Connect et de l’authentification à deux facteurs
  • Prise en charge des identités basées sur les revendications
  • Meilleure interopérabilité avec ASP.Net Core

ASP.NET l’appartenance s’appuie sur la réussite du modèle d’authentification par formulaire de ASP.NET 1.x. l’authentification par formulaire ASP.NET offre un moyen pratique d’incorporer un formulaire de connexion à votre application ASP.NET et de valider les utilisateurs par rapport à une base de données ou à un autre magasin de données.

ASP.NET l’appartenance s’appuie sur la réussite du modèle d’authentification par formulaire de ASP.NET 1.x. l’authentification par formulaire ASP.NET offre un moyen pratique d’incorporer un formulaire de connexion à votre application ASP.NET et de valider les utilisateurs par rapport à une base de données ou à un autre magasin de données. Les membres de la classe FormsAuthentication permettent de gérer les cookies pour l’authentification, case activée pour une connexion valide, de déconnecter un utilisateur, etc. Toutefois, l’implémentation de l’authentification par formulaire dans une application ASP.NET 1.x peut nécessiter une quantité de code équitable.

L’appartenance à ASP.NET 2.0 est une avancée majeure par rapport à l’utilisation de l’authentification par formulaire seule. (L’appartenance est plus robuste lorsqu’elle est associée à l’authentification par formulaire, mais l’utilisation de l’authentification par formulaire n’est pas obligatoire.) Comme vous le verrez bientôt, vous pouvez utiliser ASP.NET’appartenance et les contrôles de connexion dans ASP.NET 2.0 pour implémenter un système d’appartenance puissant sans écrire beaucoup de code.

Implémentation de l’appartenance dans ASP.NET 2.0

L’appartenance est implémentée en suivant quatre étapes. Gardez à l’esprit que de nombreuses sous-étapes sont impliquées, ainsi que la configuration facultative qui peuvent également être implémentées. Ces étapes sont destinées à illustrer la vue d’ensemble de la configuration de l’appartenance.

  1. Créez votre base de données d’appartenances (si SQL Server est utilisé comme magasin d’appartenances.)

  2. Spécifiez les options d’appartenance dans vos fichiers de configuration d’applications. (L’appartenance est activée par défaut.)

  3. Déterminez le type de magasin d’appartenances que vous souhaitez utiliser. Les options sont les suivantes :

    • Microsoft SQL Server (version 7.0 ou ultérieure)
    • Magasin Active Directory
    • Fournisseur d’appartenance personnalisé
  4. Configurez l’application pour l’authentification ASP.NET Forms. Encore une fois, l’appartenance est conçue pour tirer parti de l’authentification par formulaire, mais l’utilisation de l’authentification par formulaire n’est pas obligatoire.

  5. Définissez des comptes d’utilisateur pour l’appartenance et configurez les rôles si vous le souhaitez.

Création de la base de données d’appartenance

Si vous utilisez SQL Server 7.0 ou version ultérieure comme magasin d’appartenances, vous pouvez utiliser l’utilitaire aspnet_regsql (disponible facilement à partir de l’invite de commandes Visual Studio .NET 2005) pour configurer votre base de données. L’utilitaire aspnet_regsql peut être utilisé en tant qu’outil d’invite de commandes ou via un Assistant GUI. La méthode de l’Assistant est le moyen le plus simple de configurer votre base de données. Pour accéder à l’Assistant, exécutez simplement la commande suivante :

aspnet_regsql W

Une fois cette commande exécutée, l’Assistant Installation ASP.NET SQL Server s’affiche, comme indiqué ci-dessous.

Capture d’écran montrant un Assistant Configuration du serveur A S P dot NET Q L.

Figure 1

L’Assistant Installation de ASP.NET SQL Server crée le site web dans le instance que vous spécifiez dans l’Assistant. Toutefois, ASP.NET utilisez la chaîne de connexion dans le fichier machine.config pour vous connecter à votre base de données. Par défaut, cette chaîne de connexion pointe vers un SQL Server instance 2005. Par conséquent, si vous utilisez une SQL Server 2000 ou SQL Server instance 7.0, vous devez modifier la chaîne de connexion dans le fichier machine.config. Cette chaîne de connexion se trouve ici :

<configuration>
    <connectionStrings>
      <add name="LocalSqlServer"
         connectionString="data source=(local);
         Integrated Security=SSPI;Initial Catalog=aspnetdb;"  
         providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

Malheureusement, si vous ne modifiez pas la chaîne de connexion, ASP.NET ne vous donnera pas d’erreur descriptive. Il continuera simplement à se plaindre en disant que vous n’avez pas créé la base de données. Dans le cas ci-dessus, j’ai modifié la chaîne de connexion pour pointer vers mon SQL Server 2000 instance local.

Spécification de la configuration et ajout d’utilisateurs et de rôles

L’étape suivante de la configuration de l’appartenance consiste à ajouter les informations nécessaires au fichier web.config de l’application. Dans ASP.NET 1.x, la modification du fichier web.config était parfois difficile en raison de l’utilisation de lowerCamelCase et de l’absence d’IntelliSense. Visual Studio .NET 2005 facilite considérablement la tâche avec IntelliSense pour les fichiers de configuration, mais ASP.NET 2.0 va encore plus loin en fournissant une interface web pour la modification des fichiers de configuration.

Vous pouvez lancer l’interface web en cliquant sur le bouton Configuration ASP.NET dans la barre d’outils Explorateur de solutions, comme indiqué ci-dessous. Vous pouvez également lancer l’interface web via des fenêtres contextuelles qui s’affichent lorsque des contrôles de connexion sont insérés.

Capture d’écran montrant une barre d’outils Explorateur de solutions avec web.config sélectionné.

Figure 2

Cela lance l’outil d’administration de site web ASP.NET illustré ci-dessous. L’administration de site web ASP.NET est une interface à quatre onglets qui facilite la gestion des paramètres de l’application. Les onglets suivants sont disponibles :

  • Accueil
  • Sécurité Configurez les utilisateurs, les rôles et l’accès.
  • Application Configurez les paramètres de l’application.
  • Fournisseur Configurez et testez le fournisseur d’appartenance à vos applications.

L’outil d’administration de site web vous permet de créer facilement de nouveaux utilisateurs, de créer de nouveaux rôles et de gérer les utilisateurs et les rôles. Cette fonctionnalité n’est pas disponible dans l’interface Windows. L’interface Windows vous permet de définir facilement les paramètres d’autorisation et d’ajouter, de supprimer et de gérer des fournisseurs, des fonctionnalités qui ne figurent pas dans l’outil d’administration de site web.

Pour lancer l’interface Windows, ouvrez le composant logiciel enfichable Internet Information Services, cliquez avec le bouton droit sur votre application, puis choisissez Propriétés. Cliquez sur l’onglet ASP.NET, puis sur le bouton Modifier la configuration. (L’application doit s’exécuter sous ASP.NET 2.0 pour que le bouton Modifier la configuration soit activé. Vous pouvez également configurer la version ASP.NET dans la boîte de dialogue ASP.NET.) La boîte de dialogue Paramètres de configuration ASP.NET s’affiche comme indiqué ci-dessous.

Capture d’écran montrant un onglet Général dans la boîte de dialogue Paramètres de configuration D’un point N E T.

Figure 3

Sous l’onglet Général, les chaînes de connexion et les paramètres d’application sont répertoriés. Tous les paramètres en italique sont définis dans un fichier de configuration parent (le machine.config ou un web.config à un niveau supérieur) et les paramètres non en italique proviennent du fichier de configuration des applications. Si un paramètre est ajouté, supprimé ou modifié au niveau de l’application, ASP.NET ajoutera, supprimera ou modifiera le paramètre au niveau de l’application web.config au lieu de supprimer le paramètre du fichier de configuration dont il est hérité.

L’onglet Authentification s’affiche ci-dessous. C’est là que vous allez configurer vos paramètres d’appartenance. Les paramètres d’authentification par formulaire, les fournisseurs d’appartenance et les fournisseurs de rôles peuvent être configurés ici.

Capture d’écran montrant un onglet Authentification dans la boîte de dialogue Configurations de point N E T A S P.

Figure 4

Implémentation de l’appartenance dans votre application

Le moyen le plus simple d’implémenter l’appartenance à ASP.NET 2.0 dans votre application consiste à utiliser les contrôles d’ouverture de session fournis. Cette méthode vous permet d’implémenter les principes de base de ASP.NET appartenance à la version 2.0 sans écrire de code.

Les contrôles d’ouverture de session suivants sont disponibles dans ASP.NET 2.0 :

Contrôle de connexion

Le contrôle De connexion fournit une interface permettant à une personne de se connecter à votre système d’appartenance. Il vous fournit une zone de texte nom d’utilisateur et mot de passe, ainsi qu’un bouton de connexion. De nombreuses autres fonctionnalités courantes telles qu’un lien pour s’inscrire pour les personnes qui ne l’ont pas encore fait, une case à cocher qui permet à l’utilisateur de se connecter automatiquement lors de visites ultérieures, un lien pour un rappel de mot de passe, etc. Toutes les fonctionnalités du contrôle de connexion sont personnalisables via les propriétés du contrôle.

Dans ASP.NET 1.x, les développeurs devaient écrire une bonne quantité de code pour effectuer une recherche lors de l’utilisation de l’authentification par formulaire. Avec ASP.NET appartenance à la version 2.0, vous pouvez valider les utilisateurs sans écrire de code. ASP.NET effectuera automatiquement la recherche de l’utilisateur pour vous. (Si vous utilisez le contrôle Login sans utiliser ASP.NET appartenance, vous pouvez utiliser la méthode OnAuthenticate pour valider l’utilisateur.)

Contrôle LoginView

Le contrôle LoginView est un contrôle modèle qui fournit deux modèles par défaut ; AnonymousTemplate et LoggedInTemplate. Le modèle affiché dépend de la connexion de l’utilisateur à votre système d’appartenance. Ce contrôle est généralement utilisé pour afficher un contrôle de connexion lorsqu’un utilisateur ne s’est pas encore connecté et un contrôle LoginStatus et/ou d’autres contrôles de connexion lorsque l’utilisateur s’est connecté. Si vous utilisez la gestion des rôles dans votre application ASP.NET, le contrôle LoginView peut afficher un modèle spécifique en fonction du rôle des utilisateurs. (Plus d’informations sur ASP.NET gestion des rôles seront abordés ultérieurement.)

PasswordRecovery Control

Le contrôle PasswordRecovery permet aux utilisateurs de recevoir un e-mail avec leur mot de passe actuel ou de réinitialiser leur mot de passe. Le texte clair et les mots de passe chiffrés peuvent être récupérés et envoyé par courrier électronique aux utilisateurs. Si le mot de passe est haché, il ne peut pas être récupéré. Au lieu de cela, l’utilisateur doit effectuer une réinitialisation de mot de passe.

Contrôle LoginStatus

Le contrôle LoginStatus permet d’afficher un indicateur de connexion aux utilisateurs qui ne sont pas connectés et un indicateur de déconnexion pour les utilisateurs actuellement connectés. La propriété Request.IsAuthenticated est utilisée pour déterminer l’indicateur à afficher. L’indicateur affiché par le contrôle LoginStatus peut être du texte (implémenté via les propriétés LoginText et LogoutText ) ou des images (implémentées via les propriétés LoginImageUrl et LogoutImageUrl ).)

Lorsqu’un utilisateur se déconnecte via le contrôle LoginStatus, il est redirigé vers l’URL spécifiée par la propriété LogoutPageUrl . Si cette propriété n’est pas définie, la page active est actualisée. Étant donné que le site est probablement protégé par l’authentification par formulaire, l’actualisation de la page active redirige l’utilisateur vers la page de connexion du site.

Contrôle LoginName

Le contrôle LoginName affiche le nom d’utilisateur de l’utilisateur actuellement connecté au site.

CreateUserWizard Control

Le contrôle CreateUserWizard fournit aux utilisateurs un moyen pratique de s’inscrire à votre système d’appartenance. Vous pouvez ajouter des étapes (implémentées en tant que collection de WizardSteps) via l’interface ci-dessous.

Capture d’écran montrant une boîte de dialogue De l’Assistant Création de tâches utilisateur avec un menu déroulant pour s’inscrire à votre nouveau compte.

Figure 5

CreateUserWizard est un contrôle modèle qui dérive de la classe Assistant et fournit les modèles suivants :

  • HeaderTemplate Ce modèle contrôle l’apparence de l’en-tête de l’Assistant.
  • SidebarTemplate Ce modèle contrôle l’apparence de la barre latérale de l’Assistant.
  • StartNavigationTemplate Ce modèle contrôle l’apparence des éléments de navigation de l’Assistant à l’étape de démarrage.
  • StepNavigationTemplate Ce modèle contrôle l’apparence de la zone de navigation lorsqu’elle n’est pas à l’étape de début ou de fin.
  • FinishNavigationTemplate Ce modèle contrôle l’apparence de la zone de navigation lors de l’étape de fin.

En outre, pour chaque étape que vous ajoutez à l’Assistant, ASP.NET créez un modèle personnalisé qui contient à la fois un ContentTemplate et un CustomNavigationTemplate pour cette étape. Pour plus d’informations sur la personnalisation de CreateUserWizard, consultez la documentation VS.NET 2005 :

Contrôle ChangePassword

Le contrôle ChangePassword permet aux utilisateurs de modifier leur mot de passe. Si la propriété DisplayUserName a la valeur true (elle est false par défaut), l’utilisateur peut modifier son mot de passe lorsqu’il n’est pas connecté. Si l’utilisateur est déjà connecté et que la propriété DisplayUserName a la valeur true, l’utilisateur peut modifier le mot de passe d’un autre utilisateur qui n’est pas connecté à condition de connaître l’ID utilisateur de cet utilisateur.

N’oubliez pas que si vous souhaitez que les utilisateurs puissent modifier les mots de passe sans avoir à se connecter, vous devez vous assurer que la page sur laquelle le contrôle ChangePassword est affiché autorise l’accès anonyme. De toute évidence, les utilisateurs devront fournir leur ancien mot de passe pour modifier leur mot de passe.

Gestion des rôles

La gestion des rôles vous permet d’affecter des utilisateurs à un rôle particulier, puis de restreindre l’accès à certains fichiers ou dossiers en fonction de ce rôle. La gestion des rôles fournit également une API qui vous permet de déterminer par programmation le rôle d’une personne ou de déterminer tous les utilisateurs d’un rôle particulier et de répondre en conséquence.

La gestion des rôles n’est pas une exigence dans ASP.NET appartenance, ni une exigence d’appartenance pour utiliser la gestion des rôles. Cependant, les deux se complètent bien et il est probable que les développeurs les utiliseront l’un avec l’autre.

Pour activer la gestion des rôles dans votre application, apportez la modification suivante dans votre fichier web.config :

<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="All" />

Lorsque l’attribut cacheRolesInCookie a la valeur true, ASP.NET met en cache une appartenance à un rôle d’utilisateur dans un cookie sur le client. Cela permet aux recherches de rôle de se produire sans appel dans RoleProvider. Lors de l’utilisation de cet attribut, les développeurs sont encouragés à s’assurer que l’attribut cookieProtection est défini sur All. (Il s’agit du paramètre par défaut.) Cela garantit que les données des cookies sont chiffrées et permet de garantir que le contenu des cookies n’a pas été modifié. Des rôles peuvent être ajoutés à l’aide de l’outil d’administration de site web. Il vous permet de définir facilement des rôles, de configurer l’accès à des parties du site en fonction de ces rôles et d’affecter des utilisateurs à des rôles.

Capture d’écran montrant un outil d’administration de site web A S P dot N E T avec le bouton Ajouter un rôle.

Figure 6

Comme indiqué ci-dessus, de nouveaux rôles peuvent être ajoutés en entrant simplement le nom du rôle, puis en cliquant sur Ajouter un rôle. Les rôles existants peuvent être gérés ou supprimés en cliquant sur le lien approprié dans la liste des rôles existants.

Lorsque vous gérez un rôle, vous pouvez ajouter ou supprimer des utilisateurs comme indiqué ci-dessous.

Capture d’écran montrant un outil d’administration de site web A S P dot N E T avec le bouton Rechercher un utilisateur.

Figure 7

En cochant la case à cocher L’utilisateur est dans le rôle, vous pouvez facilement ajouter un utilisateur à un rôle spécifique. ASP.NET met automatiquement à jour votre base de données d’appartenance avec les entrées appropriées. Vous souhaiterez également configurer des règles d’accès pour votre application. ASP.NET les développeurs 1.x sont familiarisés avec l’élément <d’autorisation> dans le fichier web.config, et cette option est toujours disponible dans ASP.NET 2.0. Toutefois, il est plus facile de gérer les règles d’accès à l’aide de l’outil d’administration de site web, comme indiqué ci-dessous.

Capture d’écran montrant l’outil A S P dot N E T Web Site Administration avec les éléments sélectionnés sous Utilisateurs et rôles.

Figure 8

Dans ce cas, le dossier Administration est mis en surbrillance (il est difficile à voir, car l’outil le met en surbrillance en gris clair) et le rôle Administrateurs a reçu l’accès. Tous les autres utilisateurs sont refusés. Vous pouvez cliquer sur l’icône en tête pour sélectionner une règle, puis utiliser les boutons Monter et Descendre pour organiser les règles. Comme pour l’élément d’autorisation <> ASP.NET, les règles sont traitées dans l’ordre dans lequel elles apparaissent. En d’autres termes, si l’ordre des règles de la capture ci-dessus était inversé, personne n’aurait accès au dossier Administration, car la première règle que ASP.NET rencontrerait serait la règle qui refuse tout le monde au dossier.

ASP.NET 2.0 ajoute un fichier web.config au dossier pour lequel vous spécifiez une règle d’accès. Les règles d’accès peuvent être modifiées via le fichier de configuration ou via l’outil d’administration de site web. En d’autres termes, l’outil d’administration de site web est simplement une interface via laquelle le fichier de configuration peut être modifié dans un environnement convivial.

Utilisation de rôles dans le code

L’API pour la gestion des rôles n’a pas changé depuis la version 1.x. La méthode IsInRole est utilisée pour déterminer si un utilisateur est dans un rôle particulier.

if (User.IsInRole(Administrators)) {
    btnManageSite.Visible = true;
}

ASP.NET crée également un instance RolePrincipal en tant que membre du contexte actuel. L’objet RolePrincipal peut être utilisé pour obtenir tous les rôles auxquels l’utilisateur appartient comme suit :

string[] userRoles = ((RolePrincipal)User).GetRoles();

Utilisation de RoleGroups avec le contrôle LoginView

Maintenant que vous avez une compréhension de la gestion des rôles et de l’appartenance, voyons brièvement comment le contrôle LoginView tire parti de cette fonctionnalité dans ASP.NET 2.0. Comme indiqué précédemment, le contrôle LoginView est un contrôle modèle qui contient deux modèles par défaut ; AnonymousTemplate et LoggedInTemplate. Dans la boîte de dialogue LoginView Tasks se trouve un lien (illustré ci-dessous) qui vous permet de modifier RoleGroups.

Capture d’écran montrant le contrôle Affichage de connexion dans la boîte de dialogue Tâches de l’affichage de connexion avec une liste déroulante et un groupe de rôles sélectionnés.

Figure 9

Chaque objet RoleGroup contient un tableau de chaînes qui définit les rôles auxquels RoleGroup s’applique. Pour ajouter un nouveau RoleGroup au contrôle LoginView, cliquez sur le lien Modifier les groupes de rôles. Dans l’image ci-dessus, vous pouvez voir que j’ai ajouté un nouveau RoleGroup pour les administrateurs. En sélectionnant ce RoleGroup (RoleGroup[0]) dans la liste déroulante Affichages, je peux configurer un modèle qui sera affiché uniquement aux membres du rôle Administrateurs. Dans l’image ci-dessous, j’ai ajouté un nouveau RoleGroup qui s’applique aux membres du rôle Ventes et du rôle Distribution. Cela ajoute un deuxième RoleGroup à la liste déroulante Affichages de la boîte de dialogue Tâches LoginView. Tout ce qui a été ajouté à ce modèle sera visible par n’importe quel utilisateur dans le rôle Ventes ou Distribution.

Capture d’écran montrant une boîte de dialogue Éditeur de collection de groupes de rôles avec une liste déroulante sélectionnant Administrateurs.

Figure 10

Remplacement du fournisseur d’appartenance existant

Il existe deux façons d’étendre les fonctionnalités de ASP.NET appartenance. Tout d’abord, vous pouvez évidemment modifier les fonctionnalités existantes de la classe SqlMembershipProvider en hériter et en substituant ses méthodes. Par exemple, si vous souhaitez implémenter vos propres fonctionnalités lors de la création d’utilisateurs, vous pouvez créer votre propre classe qui hérite de SqlMembershipProvider comme suit :

public class jForumMembershipProvider : SqlMembershipProvider {
    public jForumMembershipProvider() {

    }
    public override MembershipUser CreateUser(
    string username,
    string password,
    string email,
    string passwordQuestion,
    string passwordAnswer,
    bool isApproved,
    object providerUserKey,
    out MembershipCreateStatus status) {
        // your own implementation
        return base.CreateUser(
        username,
        password,
        email,
        passwordQuestion,
        passwordAnswer,
        isApproved,
        providerUserKey,
        out status);
    }
}

Si, en revanche, vous souhaitez créer votre propre fournisseur (par exemple pour stocker vos informations d’appartenance dans une base de données Access), vous pouvez créer votre propre fournisseur.

Création de votre propre fournisseur d’appartenance

Pour créer votre propre fournisseur d’appartenance, vous devez d’abord créer une classe qui hérite de la classe MembershipProvider. Si vous utilisez VB.NET, Visual Studio 2005 ajoute les stubs pour toutes les méthodes que vous devez remplacer. Si vous utilisez C#, il vous appartient d’ajouter les stubs.

Vous devez remplacer les éléments suivants :

  • Propriété ApplicationName
  • Fonction ChangePassword
  • Fonction ChangePasswordQuestionAndAnswer
  • CreateUser, fonction
  • DeleteUser, fonction
  • EnablePasswordReset, propriété
  • EnablePasswordRetrieval, propriété
  • Fonction FindUsersByEmail
  • Fonction FindUsersByName
  • GetAllUsers, fonction
  • GetNumberOfUsersOnline, fonction
  • GetPassword, fonction
  • GetUser, fonction
  • GetUserNameByEmail, fonction
  • Propriété MaxInvalidPasswordAttempts
  • Propriété MinRequiredNonAlphanumericCharacters
  • MinRequiredPasswordLength, propriété
  • Propriété PasswordAttemptWindow
  • Propriété PasswordFormat
  • Propriété PasswordStrengthRegularExpression
  • RequiresQuestionAndAnswer, propriété
  • RequiresUniqueEmail, propriété
  • Fonction ResetPassword
  • Déverrouiller la fonction utilisateur
  • UpdateUser, fonction
  • ValidateUser, fonction

Il s’agit d’une liste à implémenter en tant que développeur C#. Vous trouverez peut-être plus facile de créer la classe dans VB.NET sans aucune implémentation, puis d’utiliser .NET Reflector ou un outil similaire pour convertir le code en C#.

La chaîne de connexion et les autres propriétés doivent être définies sur leurs valeurs par défaut dans la méthode Initialize. (La méthode Initialize est déclenchée lorsque le fournisseur est chargé au moment de l’exécution.) Le deuxième paramètre de la méthode Initialize est de type System.Collections.Specialized.NameValueCollection et est une référence à l’élément <add> associé à votre fournisseur personnalisé dans le fichier web.config. Cette entrée se présente comme suit :

<system.web>
  <authentication mode="Forms"/>
  <membership
  defaultProvider="jForumCustomMembershipProvider" >
    <providers>
      <add name="jForumCustomMembershipProvider"
      type="jForumCustomMembershipProvider"
      requiresQuestionAndAnswer="true"
      connectionString="Provider=Microsoft.Jet.
        OLEDB.4.0;Data Source=C:\jForumCustomMembershipProvider\
        App_Data\Members.mdb;Persist Security
        Info=False"
        />
    </providers>
  </membership>
</system.web>

Voici un exemple de la méthode Initialize.

public override void Initialize(string name,
    System.Collections.Specialized.NameValueCollection config) {

    if (config["requiresQuestionAndAnswer"])
        _requiresQuestionAndAnswer = true;
    _connString = config["connectionString"];
    base.Initialize(name, config);
}

Pour valider l’utilisateur lors de l’envoi de votre formulaire de connexion, vous devez utiliser la méthode ValidateUser. Cette méthode se déclenche lorsque l’utilisateur clique sur le bouton de connexion dans le contrôle Connexion. Vous allez placer le code qui effectue la recherche de l’utilisateur dans cette méthode.

Comme vous pouvez le voir, l’écriture de votre propre fournisseur d’appartenance n’est pas difficile et vous permet d’étendre cette fonctionnalité puissante de ASP.NET 2.0.