1
我們有一個使用c#(VS 2008/3.5框架)開發的Web應用程序。應用程序使用身份驗證模式作爲「Windows」,並在域(Domain1)中存在服務帳戶,以ASP.Net用戶身份運行應用程序。我們對出現在不同域(Domain 2)中的用戶進行身份驗證。當使用目錄服務(目錄搜索器)完成身份驗證時,我們可以連接到domain1的LDAP並綁定它,以便用戶通過身份驗證。另外,如果用戶已經從域1遷移到域2,則用戶能夠被認證。但是,如果在域2中直接創建了用戶標識,則應用程序無法綁定到域2(在LDAP認證期間)因此該用戶沒有被應用程序認證。請提出相同的解決方案。LDAP用戶在c#中使用目錄搜索器進行身份驗證
<authentication mode="Windows"/>
<identity impersonate="true" userName="domain1\svc_acc" password="***"/>
public bool ValidateUidPwdAndGetUserTypeGlobal(string TPXId, string password)
{
string strADPath = "LDAP://a.b.c/dc=a,dc=b,dc=c";
try
{
DirectoryEntry objDirEntry = new DirectoryEntry(strADPath, TPXId, password);
DirectorySearcher search = new DirectorySearcher(objDirEntry);
search.Filter = "(samaccountname=" + TPXId + ")";
SearchResult result = search.FindOne();
if (null == result)
{
return false;
}
else
return true;
}
catch (Exception ex)
{
return false;
}
}
LDAP認證期間拋出的異常:未知用戶名或密碼錯誤。