我有一個網站,要求用戶輸入其公司網絡用戶名和密碼。然後,它在Active Directory中查找該帳戶,並獲取與該帳戶關聯的任何電子郵件地址的列表。第一次嘗試鎖定Active Directory帳戶
我遇到的問題是一個不正確的密碼鎖定了一個帳戶。我們的域名政策是,一個帳戶在三次不正確的輸入後會被鎖定,所以我假設我在我的代碼中做了錯誤的事情。我對Active Directory或.NET DirectoryServices一般不太瞭解,這可能會從我的代碼中看出來。那就是:
public ArrayList AuthenticateActiveDirectory(string Domain, string UserName, string Password)
{
// An error occurs if the username/password combo does not exist.
// That is how we know it is not a valid entry.
try
{
DirectoryEntry entry = new DirectoryEntry("LDAP://" + Domain, UserName, Password);
object nativeObject = entry.NativeObject;
ArrayList emails = new ArrayList();
DirectorySearcher ds = new DirectorySearcher(entry);
ds.Filter = "samaccountname=" + UserName;
ds.PropertiesToLoad.Add("mail");
SearchResult sr = ds.FindOne();
if (sr.Properties["mail"] != null)
{
for (int email = 0; email < sr.Properties["mail"].Count; email++)
{
emails.Add(sr.Properties["mail"][email]);
}
}
return emails;
}
catch (DirectoryServicesCOMException) { throw; }
catch (Exception) { throw; }
}
與您的問題沒有關係,但世界上是什麼點'catch(Exception){throw; }'? – 2010-07-06 12:45:28
什麼都沒有:)如果我認爲我可能需要在那裏做額外的處理,我有時會這樣做。我也在調試時使用它,並且作爲一個額外的提醒,這些異常可能發生在這裏。 – MJB 2010-07-06 12:50:26