5

In un'applicazione web ASP.net ho definito il seguente provider di appartenenze nel web.config:requiresQuestionAndAnswer impostata su false nella web.config, ma RequiresQuestionAndAnswer è vero in fase di esecuzione

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

Quando eseguo l'applicazione in il debugger, la proprietà Membership.Provider.RequiresQuestionAndAnswer è true.

Perché? E come posso risolvere questo?

Aggiornamento: Ar tuntime, la raccolta Membership.Providers contiene due istanze di Provider che sono quasi identiche. Le differenze sono:

  • Il primo provider ha nome == "AspNetSqlMembershipProvider" e RequiresQuestionAndAnswer == true
  • Il secondo provider ha nome == "MyServer" e RequiresQuestionAndAnswer == false.

Ora cercando di capire da dove viene il primo.

+2

Il nome del provider nel debugger corrisponde al nome del provider ("MyServer")? –

+0

@ MeidanAlon il nome del provider nel debugger sembra essere "AspNetSqlMembershipProvider". Allo stesso tempo, mostra la stringa di connessione SQL corretta, quindi sembra che sia quella giusta. – urig

+0

È strano, proverei ad aggiungere defaultProvider = "MyServer" all'interno dell'appartenenza e a

risposta

3

Per il follow-up questione, i fornitori di mistero è definito in un file di configurazione di livello inferiore, denominata macchina .config, che è il file di configurazione principale a livello di server per tutti i siti asp.net in esecuzione sulla macchina. Vedi ulteriori dettagli allo MSDN page for asp.net config hierarchy.

0

La correzione per il mio problema è specificare in web.config:

<membership defaultProvider="MyServer> 

Il motivo per cui c'è un Provider "extra" in fase di esecuzione è che è definito nel mio machine.config file. Here's how to find yours.

di credito per la difficoltà va a @ meidan-Alon e il credito per causa principale va a @ ken-Egozi :)

Problemi correlati