2013-08-30 194 views
1

我正在嘗試使用C#連接到AD服務器。這是我第一次玩AD.Domain,我需要連接到abc.def.com。使用憑證連接到Active Directory

這是一個ASP.NET網站,它給出了這個錯誤。但是我可以使用相同的憑證使用「ldp.exe」登錄到同一個域。任何人有想法?

[DirectoryServicesCOMException (0x8007052e): Logon failure: unknown user name or bad "password. 
] 
    System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +387825 
    System.DirectoryServices.DirectoryEntry.Bind() +36 
    System.DirectoryServices.DirectoryEntry.get_AdsObject() +31 

這是我的代碼

static System.DirectoryServices.DirectoryEntry createDirectoryEntry() 
{ 
     System.DirectoryServices.DirectoryEntry ldapConnection = new System.DirectoryServices.DirectoryEntry("13.18.12.16", "Administrator", "admin123"); 
     ldapConnection.Path = "LDAP://ou=Users,dc=abc,dc=def,dc=com"; 
     ldapConnection.AuthenticationType = System.DirectoryServices.AuthenticationTypes.Secure; 
     return ldapConnection; 
} 


System.DirectoryServices.DirectoryEntry sgscAd = createDirectoryEntry(); 
System.DirectoryServices.DirectorySearcher search = new System.DirectoryServices.DirectorySearcher(sgscAd); 
search.Filter = "(cn=" + m_username + ")"; 

System.DirectoryServices.SearchResult result = search.FindOne(); 
+0

如果您沒有指定AuthenticationType? – tdelepine

+0

@tdelepine:如果未指定AuthenticationType,則會出現相同的錯誤。 –

回答

1

的LDAP路徑的用戶容器是不正確的。 用戶容器不是組織單元,而是一個簡單的容器。 因此,你必須指定一個不同的LDAP路徑。

的LDAP路徑在你的情況下,用戶的容器:

LDAP://cn=Users,dc=abc,dc=def,dc=com 

還要考慮什麼Hall72215在他的回答中提到。直接在DirectoryEntry類的構造函數中使用整個LDAP路徑。

0

爲什麼在構造函數中給出一個路徑(13.18.12.16),另一個是通過設置Path屬性?你有沒有嘗試過給構造函數中的所有信息?

static DirectoryEntry createDirectoryEntry() 
{ 
    string username = "Administrator"; 
    string password = "admin123"; 
    string path = "LDAP://13.18.12.16/OU=Users,DC=abc,DC=def,DC=com"; 
    AuthenticationTypes authType = AuthenticationTypes.Secure | AuthenticationTypes.ServerBind; 
    return new DirectoryEntry(path, username, password, authType); 
} 

Administrator在域控制器在13.18.12.16域用戶?

相關問題