5

In einer ASP.net Web-Anwendung ich folgende Mitgliedschaftsanbieter in der web.config definiert haben:requiresQuestionAndAnswer auf false in web.config gesetzt, aber RequiresQuestionAndAnswer gilt zur Laufzeit

<membership> 
    <providers> 
    <add connectionStringName="MyServer" name="MyServer" type="System.Web.Security.SqlMembershipProvider" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     enablePasswordRetrieval="false" /> 
    </providers> 
</membership> 

Wenn ich ausführen, um die Anwendung in der Debugger ist die Eigenschaft Membership.Provider.RequiresQuestionAndAnswertrue.

Warum? Und wie kann ich das beheben?

Update: Ar tuntime, die Membership.Providers Sammlung enthält zwei Instanzen von Provider, die fast identisch sind. Die Unterschiede sind:

  • Der erste Name des hat == "AspNetSqlMembershipProvider" und RequiresQuestionAndAnswer == true
  • Der zweite Name des hat == "MyServer" und RequiresQuestionAndAnswer == false.

Jetzt versuchen herauszufinden, woher der erste kommt.

+2

Stimmt der Provider-Name im Debugger mit dem Namen Ihres Providers ("MyServer") überein? –

+0

@MeidanAlon der Provider-Name im Debugger scheint "AspNetSqlMembershipProvider" zu sein. Gleichzeitig zeigt es die korrekte SQL-Verbindungszeichenfolge an, so dass es aussieht, als wäre es die richtige. – urig

+0

Das ist seltsam, ich würde versuchen, defaultProvider = "MyServer" innerhalb der Mitgliedschaft und zu

Antwort

3

Per der Follow-up Frage möchte das Geheimnis Anbieter auf einer niedrigeren Ebene Konfigurationsdatei definiert, mit dem Namen Maschine .config, die serverweite übergeordnete Konfigurationsdatei für alle asp.net-Sites, die auf dem Computer ausgeführt werden. Weitere Details finden Sie unter MSDN page for asp.net config hierarchy.

0

Das Update für mein Problem ist in web.config angeben:

<membership defaultProvider="MyServer> 

Der Grund, warum es zur Laufzeit ein „extra“ Provider ist, dass es in meiner machine.config-Datei definiert ist. Here's how to find yours.

Kredit für fix geht an @ meidan-Alon und für die Ursachen Kredit geht an @ ken-Egozi :)