2014-04-11 46 views
0

我們有一個問題,工作中有太多人擁有相同的密碼並最終登錄到其他用戶的帳戶。這並不是堅持所有工作密碼都應該類似的小組負責人的幫助。檢查AD是否有相同的密碼

我知道這是一個不同的問題,但是有沒有辦法檢查AD並且說這些用戶有相同的密碼?

回答

0

因爲密碼被分開散列,所以沒辦法。不過,我會繼續推動按鈕,強制每個人都更改密碼,並將密碼的外觀設置爲密碼,並強制密碼每隔30-60-120天更改一次。人們很難將密碼更改爲同一密碼。

0

如果你有密碼,你可以知道是誰從System.Security.Principal類具有使用PrincipalContext相同的密碼,使用這樣的事情:

/// <summary> 
/// Return true if user is authenticated 
/// </summary> 
/// <param name="strUsername_">User name</param> 
/// <param name="strPassword_">User password</param> 
/// <returns>True if authenticated</returns> 
public static bool IsAuthenticated(string strUsername_, string strPassword_) 
{ 
    using (var pc = new PrincipalContext(ContextType.Domain, DomainManager.DomainName)) 
     return pc.ValidateCredentials(strUsername_, strPassword_); 
} 

在這段代碼,DomainManager.DomainNameSystem.DirectoryServices.ActiveDirectoryDomain.GetCurrentDomain().Name

用戶有指定的密碼驗證,該方法將返回true。

但無論如何,您永遠不會得到用戶的密碼,您只能嘗試驗證它。

+0

有沒有辦法獲得密碼哈希,並與另一個密碼的哈希比較?我知道這聽起來真的太好了,有點不安全,但我只是不得不問。 – user2930100

+0

不,你永遠不會回來,甚至散列,用戶密碼。悲傷而高興地;) – Gnial0id