1

我正在开发一个 ASP .Net 网站。
我在 web.config 文件中声明了一个自定义 MembershipProvider,如下所示:

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

我创建了一个登录 ASPX 页面。
我在验证按钮单击事件处理程序中调用 MembershipProvider.ValidateUser 方法。
我注意到 ASP .Net 不会自动执行 MembershipProvider.Initialize 方法。
正常吗?

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

4

1 回答 1

2

在阅读了 LordHits 在此线程上的回答后,我得到了解决方案:如何在自定义 MembershipProvider 上调用 Initialize?

我严重地实例化了我的 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 配置。

于 2013-01-24T10:59:46.970 回答