SimpleMembershipProvider MinRequiredPasswordLength始终尽管它是在Web.config中成员资格提供部分定义为6返回0 [英] SimpleMembershipProvider MinRequiredPasswordLength always returns 0 despite it being defined as 6 in Web.config membership provider section
问题描述
我切换到<一个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'sWeb.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 inWeb.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屋!