2009-08-04 69 views
2

我正在開發的項目將與客戶A​​ctive Directory集成以驗證用戶身份。我一直在嘗試編寫一些代碼來檢索用戶密碼,並且我知道Active Directory只會通過端口636上的SSL連接公開相關屬性。C#:如何在啓用SSL的情況下連接到Active Directory?

以下代碼在不使用SSL的情況下以編程方式進行連接,但後來我可以「看不到密碼屬性:

static void Main(string[] args) 
{ 
    DirectoryEntry entry = new DirectoryEntry(@"LDAP://<IP>/CN=LDAP Test,CN=Users,DC=customer,DC=com"); 
    entry.AuthenticationType = AuthenticationTypes.None; 
    entry.Username = "CN=LDAP Test,CN=Users,DC=customer,DC=com"; 
    entry.Password = "<password>"; 
    if (entry != null) 
    { 
     foreach (Object propName in entry.Properties.PropertyNames) 
     { 
      Console.WriteLine((String)propName); 
     } 
    } 
} 

當我改變使用SSL我得到一個異常說明代碼;未知錯誤(0x80005000)」。

我在託管Active Directory的服務器上啓用了SSL,在同一臺服務器上安裝了Microsoft CA,並從CA獲得了證書。

我可以使用Apache Directory Studio通過SSL連接到Active Directory,但不顯示密碼屬性。

下面的代碼顯示了我一直在嘗試使用使用SSL連接:

static void Main(string[] args) 
{ 
    DirectoryEntry entry = new DirectoryEntry(@"LDAPS://<IP>:636/CN=LDAP Test,CN=Users,DC=customer,DC=com"); 
    entry.AuthenticationType = AuthenticationTypes.SecureSocketsLayer; 
    entry.Username = "CN=LDAP Test,CN=Users,DC=customer,DC=com"; 
    entry.Password = "<password>"; 
    if (entry != null) 
    { 
     foreach (Object propName in entry.Properties.PropertyNames) 
     { 
      Console.WriteLine((String)propName); 
     } 
    } 
} 

我不知道去哪裏這一點,一些援助將不勝感激。

+0

相關:http://stackoverflow.com/questions/287100/setting-up-ssl-in-active-directory-how-to/291826 – 2009-08-04 18:04:57

+0

的ADAM常見問題是在這裏:HTTP:/ /www.microsoft.com/windowsserver2003/adam/ADAMfaq.mspx#EOD – 2009-08-04 18:13:48

回答

2

我一直在嘗試寫一些代碼 ,將檢索用戶的密碼...

這無關你的SSL的問題,但我不認爲從主動獲取用戶的密碼目錄是可能的。它只存儲一個散列,這就是爲什麼在查詢用戶屬性時你沒有收到任何「密碼」屬性。

更新回答

閱讀您的評論後,它將顯示你正在尋找其中包含安全哈希unicodePwd屬性。根據MSDN information,寫入該屬性需要特殊的SSL連接,但您仍然無法讀取它,因爲它是隻寫屬性。

從MSDN

具體來說:

unicodePwd屬性從不被LDAP搜索返回。

這裏也是一個論壇後,我發現,似乎在說同樣的事情:

用戶的密碼存儲在 Active Directory中的用戶對象上 unicodePwd屬性。此 屬性可以寫在 受限制的條件下,但由於安全原因不能讀取 。 (Source

0

嘗試將服務器的證書和根證書添加到本地商店。最簡單的方法是使用IE連接到https://your.domain.contoller:636。然後點擊所有證書屏幕並將其添加到您的商店。

相關問題