2009-07-28 15 views
13

Ho implementato un provider di appartenenze personalizzato utilizzando LINQ to SQL. Quando ho aggiunto il provider di appartenenza al mio sito Web asp.net mvc nella configurazione Web, la pagina di accesso ha smesso di funzionare.ASP.NET MVC Provider di appartenenza personalizzato Errore Web.config

La mia configurazione 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'errore che ottengo è il seguente:

Messaggio di errore del parser: predefinito provider di appartenenze non è stato trovato.

Origine errore:

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

mi sono bloccato su dove procedere da qui. Non riesco a impostare un punto di interruzione in quanto l'errore sembra essere chiamato fuori dal codice principale.

Sto utilizzando il codice di appartenenza standard fornito con il progetto predefinito di asp.net mvc. Il provider di appartenenza è implementato in un assembly separato incluso nel progetto web.

Qualsiasi aiuto sarebbe molto apprezzato.

Grazie!

risposta

26

Prova ad aggiungere "Default = MyMembershipProvider" nel tag di appartenenza. Se non si specifica l'impostazione predefinita, tenterà di utilizzare lo standard ASP.

+3

ho aggiunto e ha funzionato! Grazie! – Lukasz

+3

Quindi se si fornisce a ASP.Net un elenco di esattamente un provider configurato ('' si suppone che rimuova tutti gli altri provider), esso seleziona come predefinito uno * non * configurato. Eccezionale. Molto felice di averlo trovato. –

3

2 cose che puoi provare. Numero uno: debug è possibile, basta interrompere tutte le eccezioni e scaricare i simboli di debug incluso il codice sorgente per .NET framework.

Numero due: dal momento che il tipo è definito in un altro assembly, la stringa in type probabilmente ha bisogno di essere una stringa di assemblaggio di tipo qualificato, cioè è come

type="MyMembership.MyMembershipProvider, MyAssemblyName" 
Problemi correlati