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

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

问题描述

我切换到<一个href=\"http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx\"相对=nofollow> SimpleMembershipProvider 在ASP.NET MVC应用程序4。其他的一切是伟大的工作,但有这个问题...

当我尝试这个code:

  VAR密码= Membership.GeneratePassword(Membership.MinRequiredPasswordLength,0);

MinRequiredPasswordLength 总是为0的成员资格提供程序的定义的设置Web.config文件部分不被读取。

这里的会员默认提供的Web.config 部分:

 &LT;会员defaultProvider =AspNetSqlMembershipProvider&GT;
    &LT;供应商&GT;
         &LT;清/&GT;
             &LT;添加名称=AspNetSqlMembershipProvider
                  类型=System.Web.Security.SqlMembershipProvider
                  的connectionStringName =DefaultConnection
                  enablePasswordRetrieval =假
                  enablePasswordReset设置=真
                  requiresQuestionAndAnswer =假
                  requiresUniqueEmail =假
                  maxInvalidPasswordAttempts =5
                  minRequiredPasswordLength =6
                  minRequiredNonalphanumericCharacters =0
                  passwordAttemptWindow =10
                  的applicationName =/科学院/&GT;
    &LT; /供应商&GT;
&LT; /会员&GT;

下面是调试信息,我得到:

任何提示?

SimpleMembershipProvider 那么简单,它甚至没有用到的Web.config部分?

解决方案的时刻

要克服 SimpleMembershipProvider 电流限制​​,我用这个code 抢在的Web.config 定义的值:

  MembershipSection membershipSection =(MembershipSection)WebConfigurationManager.GetSection(的System.Web /会员);
VAR defaultProvider = membershipSection.DefaultProvider;
ProviderSettings providerSettings = membershipSection.Providers [defaultProvider]
VAR minRequiredPasswordLength = int.Parse(providerSettings.Parameters [minRequiredPasswordLength]);


解决方案

  

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


呃,从你在你的web.config中所示的相关章节这似乎并没有要在所有的情况。您是窗台使用 AspNetSqlMembershipProvider

如果你想切换到<一个href=\"http://msdn.microsoft.com/en-us/library/webmatrix.webdata.simplemembershipprovider%28v=vs.111%29.aspx\"相对=nofollow> SimpleMembershipProvider 确保你已经正确配置吧:

 &LT;会员defaultProvider =SimpleMembershipProvider&GT;
  &LT;供应商&GT;
    &LT;清/&GT;
    &LT;添加名称=SimpleMembershipProvider
         类型=WebMatrix.WebData.SimpleMembershipProvider,WebMatrix.WebData
    /&GT;
  &LT; /供应商&GT;
&LT; /会员&GT;

这是说的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始终尽管它是在Web.config中成员资格提供部分定义为6返回0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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