5

de doğrudur:requiresQuestionAndAnswer web.config'de false olarak ayarlanır ama RequiresQuestionAndAnswer ben web.config'de aşağıdaki üyelik sağlayıcısı tanımladıktan bir ASP.net web uygulamasında zamanında

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

Uygulamayı çalıştırdığınızda Hata ayıklayıcı, Membership.Provider.RequiresQuestionAndAnswer özelliği true.

Neden? Ve bunu nasıl düzeltebilirim?

Güncelleme: Ar tuntime, Membership.Providers koleksiyonu, neredeyse aynı olan iki Sağlayıcı örneğini içerir. farklar şunlardır:

  • ilk Sağlayıcı Adı sahiptir == "AspNetSqlMembershipProvider" ve RequiresQuestionAndAnswer == true
  • ikinci Sağlayıcı Adı == "Sunucum" ve RequiresQuestionAndAnswer == false vardır.

Şimdi, ilk olanın nereden geldiğini bulmaya çalışıyoruz.

+2

Hata ayıklayıcıdaki sağlayıcı adı sağlayıcınızın adıyla eşleşiyor mu ("MyServer")? –

+0

@MeidanAlon hata ayıklayıcıdaki sağlayıcı adı "AspNetSqlMembershipProvider" gibi görünüyor. Aynı zamanda doğru SQL bağlantı dizesini gösteriyor, bu yüzden doğru olana benziyor. – urig

+0

Bu garip, üyelik içinde defaultProvider = "MyServer" ve

cevap

3

, gizem sağlayıcıları, bir alt düzey yapılandırma dosyasında adı geçen makineyi tanımlanır gider .config, makinede çalışan tüm asp.net siteleri için sunucu çapında üst yapılandırma dosyasıdır. MSDN page for asp.net config hierarchy'da daha ayrıntılı bilgi edinin.

0

benim sorunla ilgili düzeltme web.config'de belirtmektir:

<membership defaultProvider="MyServer> 

çalışma anında bir "ekstra" Sağlayıcı var nedeni benim machine.config dosyasında tanımlanan olması. Here's how to find yours. düzeltme için

Kredi @ Meidan-Alon gider ve kök neden için kredi @ ken-egozi :) takip soruya Başına