2009-07-28 7 views
13

J'ai implémenté un fournisseur d'appartenances personnalisé à l'aide de LINQ to SQL. Lorsque j'ai ajouté le fournisseur d'adhésion à mon site Web asp.net mvc dans la configuration Web, la page de connexion a cessé de fonctionner.Fournisseur d'appartenance personnalisée ASP.NET MVC Web.config Erreur

Ma configuration web.config:

<membership> 
    <providers> 
    <clear/> 
    <add 
     name="MyMembershipProvider" 
     type="MyMembership.MyMembershipProvider" 
     connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression="" 
     applicationName="/"/> 
    </providers> 
</membership> 

L'erreur que je reçois est la suivante:

Parser Message d'erreur: fournisseur d'appartenances par défaut n'a pas été trouvé.

Source Erreur:

Line 53:   <forms loginUrl="~/Account/LogOn" timeout="2880"/> 
Line 54:  </authentication> 
Line 55:  <membership> 
Line 56:   <providers> 
Line 57:    <clear/> 

Je suis coincé sur l'endroit où passer d'ici. Je ne peux pas définir un point de rupture car l'erreur semble être appelée hors du code principal. J'utilise le code de membre standard fourni avec le projet par défaut asp.net mvc. Le fournisseur d'appartenances est implémenté dans un assembly distinct inclus dans le projet Web.

Toute aide serait grandement appréciée.

Merci!

Répondre

26

Essayez d'ajouter "Default = MyMembershipProvider" dans la balise d'adhésion. Si vous ne spécifiez pas la valeur par défaut, il essaiera d'utiliser la norme ASP.

+3

J'ai ajouté et ça a marché! Je vous remercie! – Lukasz

+3

Donc, si vous donnez à ASP.Net une liste d'exactement un fournisseur configuré ('' est censé supprimer tous les autres fournisseurs), il choisit par défaut celui qui n'est * pas * configuré. Impressionnant. Très content d'avoir trouvé ça. –

3

2 choses que vous pouvez essayer. Numéro un: Débogage est possible, juste casser toutes les exceptions et télécharger les symboles de débogage, y compris le code source pour le framework .NET.

Numéro deux: depuis votre type est défini dans un autre ensemble, la chaîne en type a probablement besoin d'être un assemblage de type chaîne qualifié, par exemple, il est comme

type="MyMembership.MyMembershipProvider, MyAssemblyName" 
Questions connexes