2013-01-23 45 views
1

我正在開發一個ASP .Net網站。
我在web.config文件中聲明的自定義的MembershipProvider如下:MembershipProvider的初始化方法沒有執行

<membership defaultProvider="MyMembershipProvider"> 
    <providers> 
     <clear/> 
     <add name="MyMembershipProvider" type="CompleteSubtitles.Web.Security.MembershipProvider"/> 
    </providers> 
</membership> 

我創建了一個登錄的ASPX頁面。
我在驗證按鈕單擊事件處理程序中調用MembershipProvider.ValidateUser方法。
我注意到MembershipProvider.Initialize方法不是由ASP.Net自動執行的。
這是正常的嗎?

MembershipProvider.Initialize方法是加載MembershipProvider的配置所必需的。

回答

2

我已經得到了解決閱讀此線程LordHits的回答後:How do I call Initialize on a custom MembershipProvider?

我不好實例化我的MembershipProvider如下:

CompleteSubtitles.Web.Security.MembershipProvider l_membershipProvider = 
     new CompleteSubtitles.Web.Security.MembershipProvider(); 

正確的方法是:

CompleteSubtitles.Web.Security.MembershipProvider l_membershipProvider = 
     (CompleteSubtitles.Web.Security.MembershipProvider)Membership.Providers["MyMembershipProvider"]; 

的當使用正確的方式時,會執行MembershipProvider.Initialize方法。
MembershipProvider配置因此從web.config文件中讀取。