我正在开发一个ASP .Net网站 我在web.config文件中声明了一个自定义MembershipProvider,如下所示:
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="CompleteSubtitles.Web.Security.MembershipProvider"/>
</providers>
</membership>
我创建了一个登录ASPX页面 我在validate按钮单击事件处理程序中调用MembershipProvider.ValidateUser方法 我注意到ASP.Net不会自动执行MembershipProvider.Initialize方法 这是正常的吗?
必须使用MembershipProvider.Initialize方法加载MembershipProvider的配置。
答案 0 :(得分: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方法 因此,从web.config文件中读取MembershipProvider配置。