2013-01-23 44 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文件中读取。