簡體   English   中英

根據本地安全策略驗證新的AD密碼?

[英]Validate new AD password according to local security policy?

我想允許當前用戶更改其密碼(通過活動目錄進行管理)。

我想驗證一下,然后在Active Directory中設置其密碼(當前使用SetPassword invoke方法 )。

我的問題是驗證密碼,使其符合復雜性要求:

不包含超過兩個連續字符的用戶帳戶名或用戶全名的一部分,長度至少為六個字符包含以下四個類別中的三個類別的字符:英文大寫字母(A到Z)英文小寫字符(a到z) )以10為基數的數字(0到9)非字母字符(例如,!,$,#,%)更改或創建密碼時會強制執行復雜性要求。

我已經在使用帶有兩個文本框的CompareValidator ,所以我正在考慮添加RegularExpressionValidator源1源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之前,應如何驗證用戶密碼?

恕我直言,與SetPassword相比,您可以更好地使用ChangePassword。 這樣,您需要用戶指定其當前(舊)密碼。 這可能很有趣,因為您永遠無法百分百確定正在瀏覽您的網站的用戶實際上是登錄的用戶。

這是更多信息的鏈接: http : //www.primaryobjects.com/CMS/Article66.aspx

您不必事先驗證密碼。 只需通過try-catch將其發送到AD,如果未通過驗證,其原因將出現在異常消息中。

我找到了一種更詳細地診斷錯誤的方法。 它沒有提供來自AD的任何反饋,但是我們也許可以創建COM錯誤到用戶友好消息的映射。

本文提供有關處理可能的COM錯誤的更多信息:

http://www.ozkary.com/2015/03/active-directory-setpassword-or.html

我認為可以為這些COM錯誤添加更多詳細信息:

0x800708c5 0x8007202f 0x8007052d 0x8007052f

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM