如何测试AD密码是否符合配置的复杂性要求?
在net 3.5 csharp应用程序中,我需要提前知道AD密码是否满足配置的复杂性要求。
你怎么能这样做?
这些链接可能会指向您正确的轨道:
在ADS中更改用户密码并检查域密码策略(C#)?
使用Active Directory进行用户管理 – 为ADAM用户管理密码
确定域范围的帐户策略 (这个似乎有您需要的)
如果你想从AD获取需求,那么@Leniel Macaferi的答案中的链接应该有所帮助。
如果您已经知道预期的要求并且您的应用程序正在接受建议的密码作为字符串,您可以自己进行测试。 一些常见的要求和计算方法包括:
- 最小长度 :很容易检查字符串的长度
- 复杂性 :常见的要求是“此列表中至少有三个:小写,大写,数字,字符”,因此您要创建一个计数器,然后使用正则表达式来测试每个条件是否匹配并为每个条件递增计数器。 所以,例如,你的正则表达式就像
[az]
,[AZ]
,[0-9]
,[~!@#$%^&*()-_\+=<,>\.\?\/]
; 对于每个匹配的,将1添加到您的计数器。 如果最后的计数小于您的要求,则密码将失败。 (你甚至可以对用户特别好,并建议他们错过的一个类别,如果你保留他们使用和不使用的类别的布尔变量。) - 简单猜测 :您可以创建自己的相等测试,以确保用户不会选择与其用户名或其他禁用密码相匹配的密码。
- 最近使用的密码 :嗯,这个不是那么容易……如果没有Active Directory的帮助,你无法弄明白。