Question

J'ai écrit un MembershipProvider personnalisé qui utilise un schéma de base de données personnalisé pour stocker les membres, mais je ne parviens pas à comprendre comment déployer le fournisseur. Mon serveur cible exécute IIS7 et je peux accéder à une boîte de dialogue pour ajouter un fournisseur d'utilisateur .NET, mais au lieu de me permettre de sélectionner l'assembly contenant le fournisseur & Amp; puis la classe, elle fournit une liste déroulante avec quelques fournisseurs écrits en MS.

Dois-je déposer mon assembly à un emplacement spécifique pour que ma classe MembershipProvider soit découverte par IIS? Si tel est le cas, que doit faire le fichier .dll? Sinon, comment dire à ASP.Net d'utiliser mon MembershipProvider? Chaque exemple que j'ai vu fait simplement référence au nom de classe qualifié complet, mais ne mentionne pas la façon dont le fichier doit être déployé.

Était-ce utile?

La solution

Si vous recherchez dans votre fichier web.config, vous devriez avoir une section appelée system.web. À l'intérieur de cela, il y a un élément d'appartenance avec une liste de fournisseurs. Vous devriez pouvoir ajouter votre fournisseur et y définir un fournisseur par défaut. Une fois que votre fournisseur d’appartenance est enregistré de cette manière, vous devriez également pouvoir le sélectionner par défaut pour cette application à partir d’IIS.

<system.web>
    ...
    <membership defaultProvider="MyMembershipProvider" 
                    userIsOnlineTimeWindow="15">
        <providers>
            <add name="MyMembershipProvider"
                             type="Common.Auth.MyMembershipProvider, Common" 
                             connectionStringName="MyAuthDBConnectionString" 
                             enablePasswordRetrieval="true" 
                             enablePasswordReset="true" 
                             requiresQuestionAndAnswer="true" 
                             writeExceptionsToEventLog="false" />
        </providers>
    </membership>
    ...
</system.web>

L'élément providers vous permet d'enregistrer plusieurs fournisseurs parmi lesquels choisir. Une autre caractéristique est que vous pouvez effacer les fournisseurs d’adhésion enregistrés dans d’autres fichiers de configuration sur la machine. Cela peut rendre la configuration de votre application moins sujette aux erreurs ultérieurement. Pour ce faire, ajoutez le & Lt; clear / & Gt; élément avant le premier fournisseur d'appartenance (l'élément < add / > élément) de la liste.

<system.web>
    ...
    <membership defaultProvider="MembershipProvider1">
        <providers>
            <clear />
            <add name="MembershipProvider1" ... />
            <add name="MembershipProvider2" ... />
        </providers>
    </membership>
    ...
</system.web>

Si vous souhaitez enregistrer le même fournisseur avec plusieurs applications Web uniquement à l'aide du Gestionnaire des services Internet, vous devez placer l'assembly dans le GAC et ajouter le fournisseur à l'un des fichiers de configuration de la machine. C’est généralement plus de travail pour peu d’avantages lors du déploiement d’une seule application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top