2

.net 응용 프로그램을 사용하려고하는데 응용 프로그램에서 로컬 네트워크의 서버를 찾을 수 없습니다. 연결이 LdapExplorerLDAP 연결 오류가있는 AD

the base DN is "DC=exago,DC=local", the Ip address "192.168.1.250" and the server name "exago.local" 

성공하고,이 결과 :

임 다음과 같은 설정으로 LdapExploreTool 2를 사용하여 값 Inputing ldap
: 코드를 검사 ldap2
을, "인증을 위해 네이티브 AdsObject에 바인딩"할 때 예외가 발생합니다.

"지정한 도메인이 없거나 연결할 수 없습니다."

public bool IsAuthenticated(string domain, string ldapPath, string username, string pwd, string userToValidate) 
    { 
     string domainAndUsername = domain + @"\" + username; 

     if (string.IsNullOrEmpty(ldapPath)) 
      SetLdapPath(domain); 
     else 
      _path = ldapPath; 
     App.Services.Log.LogUtils.WriteLog(Log.LogLevel.INFO, "IsAuthenticated_DirectoryEntry:" + _path + "," + domainAndUsername + "," + pwd); 
     DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd); 

     //check if domain is valid 
     int domainId = AppDomains.GetDomainIdByName(domain); 
     if (domainId == int.MinValue) 
     { 
      return false; 
     } 

     AppDomains d = AppDomains.GetRecord(domainId); 
     List<AppDomainQueries> lQueries = new List<AppDomainQueries>(AppDomainQueries.GetArray()); 
     lQueries = lQueries.FindAll(delegate(AppDomainQueries dq) { return dq.DomainId == domainId && dq.Status == 'A'; }); 

     string queryString = string.Empty; 
     try 
     { 
      // Bind to the native AdsObject to force authentication. 
      Object obj = entry.NativeObject; 

      DirectorySearcher search = new DirectorySearcher(entry); 

      string ldapAndQuerie = string.Empty; 

      //base account search 
      queryString = "(SAMAccountName=" + userToValidate + ")"; 


      if (username != userToValidate) 
      { 
       if (lQueries.Count == 1) 
        ldapAndQuerie = lQueries.FirstOrDefault().QueryString; 

       if ((ldapAndQuerie != string.Empty) && (ldapAndQuerie != "*") && (ldapAndQuerie != "(objectClass = user)")) 
        queryString = "(&(SAMAccountName=" + userToValidate + ")" + ldapAndQuerie + ")"; 
      } 

      search.Filter = queryString; 

      App.Services.Log.LogUtils.WriteLog(Log.LogLevel.INFO, "LDAP=" + queryString); 


      search.PropertiesToLoad.Add("cn"); 
      SearchResult result = search.FindOne(); 
      if (null == result) 
      { 
       return false; 
      } 
      // Update the new path to the user in the directory 
      _path = result.Path; 
      _filterAttribute = (String)result.Properties["cn"][0]; 
     } 
     catch (Exception ex) 
     { 
      App.Services.Log.LogUtils.WriteLog(Log.LogLevel.ERROR, "App.Services.Core.LdapAuthentication.IsAuthenticated() Exception - (LDAP=" + queryString + ")" + ex.Message, ex); 
      return false; 
     } 
     return true; 
    } 

어떻게 연결하나요?

답변

0

문제는 LDAP 연결 문자열 으로 네트워크의 실제 위치 (IP + 포트)가 누락 된 것 같습니다.

LDAP://192.168.1.250:389/DC=exago,DC=local