我想允许当前用户更改其密码(通过活动目录管理)。
我想验证然后在 Active Directory 中设置他们的密码(当前使用SetPassword调用方法).
我的问题是验证密码,使其满足复杂性要求:
不包含用户的帐户名或
用户全名的一部分
超过两个连续字符 Be
长度至少为六个字符
包含以下三个角色中的角色
以下四类: 英语
大写字符(A 到 Z)
英文小写字符(a
到 z) 10 基数(0 到
9) 非字母字符(例如
例如, !, $, #, %) 复杂性
当要求被强制执行时
密码被更改或创建。
我已经在使用了CompareValidator
有两个文本框,所以我正在考虑添加一个RegularExpressionValidator
(source 1, source 2)但我不确定如何让它与整个“四类中的三类”一起工作:
RegularExpressionValidator revComplex = new RegularExpressionValidator();
revComplex.ControlToValidate = _txtPassword1.ID;
revComplex.ErrorMessage = "Password must have at least 7 characters. Characters should be from at least three of the following four groups: uppercase letter, lowercase letter, digit, or special characters (for example, !, $, #, %).";
revComplex.ValidationExpression = @"^(?=.{7,})(?=.*[a-z])(?=.*[0-9])(?=.*[A-Z])(?!.*s).*$";
肯定有人尝试过这样做吗?在根据本地安全策略将用户密码发送到 Active Directory 之前,我应该如何验证用户密码?
恕我直言,您可以更好地使用 ChangePassword 而不是 SetPassword。这样,您就需要用户指定其当前(旧)密码。这可能很有趣,因为您永远无法 100% 确定正在浏览您网站的用户实际上是登录的用户。
这是包含更多信息的链接:http://www.primaryobjects.com/CMS/Article66.aspx
您不必提前验证密码。只需在 try-catch 中将其发送到 AD,如果未通过验证,原因将在异常消息中显示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)