日期:2014-05-18  浏览次数:20444 次

关于注册用户时密码的校验
Microsoft Visual Studio 2005中,我依次进行如下操作:
点击菜单“文件”,“新建”,“网站”,选择“个人网站初学者工具包”,点击“确定”,
然后运行,点击浏览器页面右上角的“注册”链接进行注册,输入完用户各信息后,点击“创建用户”按钮,这时提示“密码最短长度为 7,其中必须包含以下非字母数字字符: 1。”。

接着我做如下修改:
在web.config文件<system.web>中添加如下代码:
<membership>
  <providers>
  <add name="AspNetSqlMembershipProvider"
  type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
  connectionStringName="LocalSqlServer"
  enablePasswordRetrieval="false"
  enablePasswordReset="true"
  requiresQuestionAndAnswer="true"
  applicationName="/"
  requiresUniqueEmail="false"
  passwordFormat="Hashed"
  maxInvalidPasswordAttempts="5"
  minRequiredPasswordLength="7"
  minRequiredNonalphanumericCharacters="1"
  passwordAttemptWindow="10"
  passwordStrengthRegularExpression="" />
  </providers>
</membership>

这时再次运行,点击浏览器页面右上角的“注册”链接进行注册,输入完用户各信息后,点击“创建用户”按钮,仍然提示“密码最短长度为 7,其中必须包含以下非字母数字字符: 1。”。

退出运行,做如下修改:
将minRequiredPasswordLength="7"改为minRequiredPasswordLength="5",将minRequiredNonalphanumericCharacters="1"改为minRequiredNonalphanumericCharacters="0",
再次运行,点击浏览器页面右上角的“注册”链接进行注册,此时程序报错如下:


“/PersonalSite”应用程序中的服务器错误。
--------------------------------------------

配置错误 
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 

分析器错误信息: 项“AspNetSqlMembershipProvider”已添加。

源错误: 


行 30: <membership>
行 31: <providers>
行 32: <add name="AspNetSqlMembershipProvider"
行 33: type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
行 34: connectionStringName="LocalSqlServer"
 

源文件: C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\WebSites\PersonalSite\web.config 行: 32 


--------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433 


请问有谁知道这是怎么回事?多谢!



------解决方案--------------------
密码最短长度为 7,其中必须包含以下非字母数字字符: 1

这个提示本身是错误的。
当然出这个提示跟你设置也有关。

最近正在研究 asp.net 2.0 新增的login控件,发现系统默认的密码安全性要求较高,即“密码最短长度为 7,其中必须包含以下非字母数字字符: 1。”,对于一般王展来说没有必要(连windows2003sever都没有默认要求这样复杂的密码)。一些参考资料提供的修改方法是在machine.config里面修改。但是除非你有主机的管理权,否则是不能修改的。所以还是建议到web.config文件里面修改。

方法是在web.config的<system.web>节点里加入子标签:


<membership>
<providers>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider"
type=" System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExp