不从web.config读取成员资格提供程序属性

时间:2010-10-22 16:34:08

标签: asp.net asp.net-mvc asp.net-membership membership-provider

我在使用EF的ASP.NET自定义成员身份实现时遇到问题。问题是,我的web.config具有提供程序的默认值,但在运行时,这些默认值仅在第一次提供程序实例化时在Initialize()中读取(例如,当我通过GET请求Register视图但是当我填写表单并POST到控制器,不会调用提供程序类上的Initialize(),并且所有提供程序设置都为null或默认值类型值。

这是我的web.config部分:

    <membership>
        <providers>
            <clear />
            <add name="AspNetSqlMembershipProvider"
                 type="BN.Membership.EfMembershipProvider, BN"
                 connectionStringName="ApplicationServices"
                 enablePasswordRetrieval="false"
                 enablePasswordReset="true"
                 requiresQuestionAndAnswer="false"
                 requiresUniqueEmail="true"
                 maxInvalidPasswordAttempts="5"
                 minRequiredPasswordLength="6"
                 minRequiredNonalphanumericCharacters="0"
                 passwordAttemptWindow="10"
                 applicationName="/" />
        </providers>
    </membership>
    <roleManager enabled="false">
        <providers>
            <clear />
            <add name="AspNetSqlRoleProvider"
                 type="BN.Membership.EfRoleProvider, BN"
                 connectionStringName="ApplicationServices"
                 applicationName="/" />
        </providers>
    </roleManager>

由于我的提供者类非常庞大,我不会在这里发布,但如果请求会发布它的一些部分。

1 个答案:

答案 0 :(得分:0)

这有用吗:How do I call Initialize on a custom MembershipProvider? - 在帖子中发布初始化提供程序的代码会有所帮助。


您无需使用CSL模式将Ninject与此一起使用。虽然我不知道你为什么选择在项目中间改变你的DI框架,但是CSL是半有用的。