如何在web.config文件中设置最大密码长度?

时间:2010-10-23 05:59:03

标签: web-config asp.net-membership

我在web.config文件的Membership部分设置了minRequiredPasswordLength,minRequiredNonalphanumericCharacters。但我也需要最大密码长度来设置。如何在web.config文件中设置?

2 个答案:

答案 0 :(得分:1)

我认为MembershipProvider的默认实现不支持此功能。但是,您可以通过在用户设置/更改密码长度时验证密码长度来获得相同的结果。

与PasswordRecovery控件相关的编辑

如果您使用带有PasswordRecovery控件的MembershipProvider类的标准实现,则无法干扰新密码的生成(更准确地说是ResetPassword - “将用户的密码重置为新的,自动生成密码”)。 如果你想使用PasswordRecovery控件,除了创建一个源自抽象MembershipProvider类或其具体实现之一的自定义成员资格提供程序(如SqlMembershipProvider)之外,我没有其他选择;

另一种选择是实现自定义密码恢复界面,因为您仍然可以依赖MembershipProvider中实现的功能。当用户想要重置密码时,可以使用GetUser方法获取相关信息,然后使用ResetPassword获取新密码。此时,您可以使用ResetPassword返回的密码并调用ChangePassword来设置符合条件的新密码,而不是通过电子邮件发送给用户。有很多方法可以实现相应的用户界面,但重置密码逻辑几乎是相同的。

此外,如果您决定加密密码而不是哈希符合您的要求,您的问题将得到解决,因为用户将通过电子邮件收到他们的旧密码(从设置时起满足最大长度条件)。为此,在web.config中进行以下更改:

      Passwordformat="encrypted"
      Passwordreset="true"
      Passwordretriaval="true"

答案 1 :(得分:0)

您必须使用ValidatingPassword个活动。在这里,您可以检查最大长度等。更多信息,请访问: http://forums.asp.net/t/946218.aspx