2016-08-25 5 views
1

openldap 서버와 통신하기 위해 LdapDirectoryIdentifier를 사용하여 LDAP를 통해 인증을 시도하는 중입니다.인증을 위해 ldap을 사용하는 C# ASP.NET 응용 프로그램

코드는 코드를 실행하면 LDAP 서버를 사용할 수없는 진술() 바인딩에서 나에게 예외를 제공

  dapDirectoryIdentifier ldi = new LdapDirectoryIdentifier("ldap.com", 636); 
      LdapConnection lconn = new LdapConnection(ldi); 
      lconn.SessionOptions.ProtocolVersion = 3; 
      lconn.Bind(); 
      lconn.Dispose(); 

니펫을. 그러나 내 netstat을 검토하면 연결이 설정되고 설정됩니다. 다른 오류 메시지는 없습니다.

아이디어가 있으십니까?

답변

1

포트 636은 SSL 용입니다. 당신이 (SecureSocketLayer = TRUE) SSL을 통해 해당 서버에 액세스 할 수 있는지 확인 LdapConnection 직접보십시오 :이 작동하는 경우

using (var ldapConnection = new LdapConnection("my.ad.server:636")) { 
        var networkCredential = new NetworkCredential(username, password, "my.ad.server"); 
ldapConnection.SessionOptions.SecureSocketLayer = true; 
        ldapConnection.AuthType = AuthType.Negotiate; 
        ldapConnection.Bind(networkCredential); 
       } 

참조.

+1

이것은 부분적으로 대답이었습니다. 또한 인증서가 없어서 lconn.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback ((con, ver) => true)을 사용하여 우회해야했습니다. – adroit