2

我正在为我的用户及其角色使用 ASP.NET 配置。我还在使用 MembershipUser 类及其函数 CreateUser。我有它的工作,但对某事感到好奇。

当我添加一个新用户并传递这个函数时,它的密码参数(在这种情况下来自页面上的文本框)。似乎它仅在 6 个字符或更多字符时才找到并接受该文本框值。例如,如果我输入 ab123,它会说对象未设置为对象的实例。但是,如果我做 abc123 它工作正常。在哪里被告知要这样做。我不知道这是否是我可以改变的,或者它可能在哪里做。

谢谢。

4

2 回答 2

1

这是在 web.config 中定义的

<membership>
            <providers>
                <clear/>
                <add name="AspNetSqlMembershipProvider"
                                 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
                                 connectionStringName="ASPNetMembership"
                                 enablePasswordRetrieval="false" 
                                 enablePasswordReset="true" 
                                 requiresQuestionAndAnswer="false" 
                                 requiresUniqueEmail="false" 
                                 passwordFormat="Hashed" 
                                 maxInvalidPasswordAttempts="5" 
                                 minRequiredPasswordLength="6"   
                                 minRequiredNonalphanumericCharacters="0"           
                                 passwordAttemptWindow="10" 
                                 passwordStrengthRegularExpression="" 
                                 applicationName="/"/>
            </providers>
        </membership>
于 2010-05-25T19:47:06.403 回答
0

在 web.config 中,在成员资格/提供者下,<add ...>您的成员资格提供者的元素可以具有,除其他外,minRequiredPasswordLength="some number".

machine.config 中还有一个默认提供程序,显然(根据 MSDN:请参阅http://msdn.microsoft.com/en-us/library/1b9hw62f.aspx,底部的第二个代码片段),所以如果你不这样做看不到<add>一行,您可能正在使用默认行,它的最小长度为 7。为了更改该行,您必须将该 machine.config 行复制到您的 web.config 中,更改名称,并以这种方式编辑参数....或更改整个服务器的默认值并观察它可能会在升级时中断。

于 2010-05-25T19:48:26.820 回答