【问题标题】:Setting the Password complexity设置密码复杂度
【发布时间】:2017-09-12 19:06:04
【问题描述】:

.Net MVC web应用中设置密码复杂度,如何实现以下规则:

1) 密码不得包含姓名的重要部分(三个或更多连续字符)。 (这一点在链接的帖子中不可用)

2) 以下四个类别中的至少三个:

  • 英文大写字符(A 到 Z)
  • 英文小写字符(a 到 z)
  • 以 10 位为基数(0 到 9)
  • 非字母字符:~!@#$%^&*;?+_

我想使用 javascript/jquery 来实现。

谢谢

【问题讨论】:

  • 为什么选择javascript?您可以使用 ASP.NET MVC 中的注释更好地做到这一点
  • 最小长度不是比每个类别概念中的字符更有用吗?什么名字”?用户名?
  • @MacakM- 怎么样?你能解释一下吗?
  • @nnnnnn- 密码长度最少为 8 个字符,最多为 10 个字符。

标签: javascript c# jquery asp.net-mvc


【解决方案1】:

为此目的使用javascript是不好的(可以绕过)。更好的解决方案是使用 ASP.NET MVC 数据注释。使用它们,您可以为模型类设置属性,并且何时触发 POST 操作,它将根据此属性验证输入。

您可以在这里了解更多信息:https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/models-data/validation-with-the-data-annotation-validators-cs

您还可以根据需要编写自定义验证属性。在您的情况下,我认为 [RegularExpression] 属性足以满足 2)。

对于 1),您应该使您的自定义属性如下所示: http://www.c-sharpcorner.com/UploadFile/rahul4_saxena/mvc-4-custom-validation-data-annotation-attribute/

【讨论】:

  • @MacakM- 你认为我可以通过这个 [RegularExpression] 属性实现我的第一点吗??
  • 我不确定我是否理解这一点......这是否意味着用户 MacakM 的密码不能是 aca5842?
  • 例如:name=MacakM,因此密码不能包含来自名称“MacakM”的 3 个连续字符中的任何一个。比如有效密码 = Ab1@h2s5。无效密码 = AbMac5s,因为它的名称为“Mac”。
  • 是的,那么您应该使用我在回答中所写的自定义属性。您只需在此处写下您想要验证的内容并返回 true/false :)
  • 感谢您的回复,我会看看建议,看看我是否可以让它们工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 2013-06-28
  • 2015-04-19
  • 2014-05-14
  • 1970-01-01
相关资源
最近更新 更多