2013-01-11 27 views
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認證期間拋出的異常:未知用戶名或密碼錯誤。

回答

相關問題