web.config点滴:更改login控件对密码安全性的要求

6/16/2006来源:ASP.NET技巧人气:15419

最近正在研究 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"
                    passwordStrengthRegularExpression="" />
            </providers>
        </membership>


 

对关键的属性做一下说明:

connectionStringName 数据库连接。这个要在web.config设置
enablePasswordRetrieval 获得一个值,指示当前成员资格提供程序是否配置为允许用户检索其密码。
enablePasswordReset 获得一个值,指示当前成员资格提供程序是否配置为允许用户重置其密码。
requiresQuestionAndAnswer 获取一个值,该值指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。
applicationName 获取或设置应用程序的名称。
requiresUniqueEmail 指示用户在创建用户时是否必须提供唯一的电子邮件地址值。
passwordFormat 指示在成员资格数据存储区中存储密码的格式。下面有详细说明
maxInvalidPasswordAttempts 获取锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。
minRequiredPasswordLength 获取密码所要求的最小长度。
minRequiredNonalphanumericCharacters 获取有效密码中必须包含的最少特殊字符数。
passwordAttemptWindow 获取在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。

对PasswordFormat 的详细说明
属性指示存储密码的格式。密码可以采用 Clear、Encrypted 和 Hashed 密码格式存储。Clear 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,当数据源安全性受到威胁时此类密码很容易被读取。Encrypted 密码在存储时进行了加密,可以在比较或检索密码时进行解密。此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。

http://citywill.cnblogs.com/archive/2006/06/15/426236.html