SimpleMembershipProvider MinRequiredPasswordLength 始终返回 0,尽管它在 Web.config 成员资格提供程序部分中被定义为 6 [英] SimpleMembershipProvider MinRequiredPasswordLength always returns 0 despite it being defined as 6 in Web.config membership provider section

查看:19
本文介绍了SimpleMembershipProvider MinRequiredPasswordLength 始终返回 0,尽管它在 Web.config 成员资格提供程序部分中被定义为 6的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我切换到 来获取定义的值在 Web.config 中:

MembershipSectionmembershipSection = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership");var defaultProvider = membersSection.DefaultProvider;ProviderSettings providerSettings =membershipSection.Providers[defaultProvider];var minRequiredPasswordLength = int.Parse(providerSettings.Parameters["minRequiredPasswordLength"]);

解决方案

我在 ASP.NET MVC 4 应用程序中切换到 SimpleMembershipProvider.

呃,从你在 web.config 中显示的相关部分来看,这似乎根本不是这种情况.您仍然在使用 AspNetSqlMembershipProvider.

如果要切换到 SimpleMembershipProvider 确保您已正确配置它:

<提供者><清除/><add name="SimpleMembershipProvider"type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/></提供者></会员资格>

据说 SimpleMembershipProvider 不支持通过 web.config 设置这些属性.它甚至不使用它.如果您需要此类功能,则必须自己实现.

I switched to SimpleMembershipProvider in an ASP.NET MVC 4 app. Everything else is working great but there's this problem...

When I try this code:

var password = Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);

MinRequiredPasswordLength is always 0. The settings defined in the membership provider's Web.config section are not being read.

Here's the Membership default provider Web.config section:

<membership defaultProvider="AspNetSqlMembershipProvider">
    <providers>
         <clear />
             <add name="AspNetSqlMembershipProvider"
                  type="System.Web.Security.SqlMembershipProvider"
                  connectionStringName="DefaultConnection"
                  enablePasswordRetrieval="false"
                  enablePasswordReset="true"
                  requiresQuestionAndAnswer="false"
                  requiresUniqueEmail="false"
                  maxInvalidPasswordAttempts="5"
                  minRequiredPasswordLength="6"
                  minRequiredNonalphanumericCharacters="0"
                  passwordAttemptWindow="10"
                  applicationName="/Acad" />
    </providers>
</membership>

Here's the debug info I get:

Any hints?

Is the SimpleMembershipProvider so simple that it doesn't even use the Web.config section?

Solution for the moment

To overcome the SimpleMembershipProvider current limitation, I used this code to grab the value defined in Web.config:

MembershipSection membershipSection = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership");
var defaultProvider = membershipSection.DefaultProvider;
ProviderSettings providerSettings = membershipSection.Providers[defaultProvider];
var minRequiredPasswordLength = int.Parse(providerSettings.Parameters["minRequiredPasswordLength"]);

解决方案

I switched to SimpleMembershipProvider in an ASP.NET MVC 4 app.

Erm, from the relevant section you have shown in your web.config this doesn't seem to be the case at all. You are sill using the AspNetSqlMembershipProvider.

If you want to switch to the SimpleMembershipProvider make sure that you have properly configured it:

<membership defaultProvider="SimpleMembershipProvider">
  <providers>
    <clear/>
    <add name="SimpleMembershipProvider"
         type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"
    />
  </providers>
</membership>

This being said the SimpleMembershipProvider doesn't support setting those properties via web.config. It doesn't even use it. If you want such functionality you will have to implement it yourself.

这篇关于SimpleMembershipProvider MinRequiredPasswordLength 始终返回 0,尽管它在 Web.config 成员资格提供程序部分中被定义为 6的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆