2013-07-31 20 views
9

Ich versuche Autorisierung auf asp.net mvc4 arbeiten, also versuche ich WebSecurity zu verwenden.Default Role Provider konnte nicht gefunden werden, wenn SimpleMembershipProvider verwendet

WebSecurity.InitializeDatabaseConnection("tradefairindia", "Users", "Id", "Username", false); 

Ich habe diese setzen in Global.asax, und das ist, wo der Fehler kommt, „Default Role Provider konnte nicht gefunden werden“.

Im Internet habe ich gelesen, dass ich diese Codezeile zu meiner web.config <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> hinzufügen musste. Aber ich hatte es schon wegen vorheriger Fehler hinzugefügt.

Wie kann ich dieses Problem lösen?

Edit:

Als ich es defaultProvider="SimpleRoleProvider" ändern es gibt mir einen neuen Fehler. Es sagt

Der Typ oder Namespace-Name ‚Daten‘ nicht im Namensraum existieren ‚WebMatrix‘ (werden Sie eine Assembly Referenz fehlt?)

Antwort

18

ich es durch eine Änderung der defaultProvider-SimpleRoleProvider fixiert. Der zweite Fehler, den ich durch das Hinzufügen Webmatrix.data als Referenz festgelegt und geht auf seine Eigenschaft und setzen kopieren lokale auf wahr. Ich weiß nicht, wie diese es behebt, wenn jemand erarbeiten kann, dass wäre schön.

Hier ist meine web.config für jeden, der die gleiche prob rempelt:

<system.web> 
    //... 
    <membership defaultProvider="SimpleMembershipProvider"> 
     <providers> 
     <clear /> 
     <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" /> 
     </providers> 
    </membership> 
    <roleManager enabled="true" defaultProvider="SimpleRoleProvider"> 
     <providers> 
     <clear /> 
     <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" /> 
     </providers> 
    </roleManager> 
    //... 
</system.web> 
+1

Vergessen Sie nicht Ihre eigene Antwort zu akzeptieren. Dies sollte vielen Menschen helfen. –

+2

können Sie wählten einen beliebigen Namen, wie 'default =„MyRoleProvider“', solange der Name in der '' Abschnitt Eins entspricht. Dort geben Sie an, welche Bibliothek tatsächlich verwendet wird. Also in '' Sie sagen, dass Sie den SimpleRoleProvider aus der WebMatrix.WebData-Bibliothek verwenden wollen und dass Sie ihn 'MyRoleProvider' nennen. Wenn Sie Local nicht auf True WebMatrix setzen, wird WebData.dll beim Kompilieren nicht in Ihren bin-Ordner kopiert. Da es nicht Teil des GAC standardmäßig ist, kann die Assembly nicht finden. – flip

Verwandte Themen