MembershipProvider的Initialize方法未执行

时间:2013-01-23 16:54:33

标签: asp.net membership-provider

我正在开发一个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的配置。

1 个答案:

答案 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配置。