2012-07-26 2 views
2

우리 회사에는 .net 응용 프로그램과 함께 Novell eDirectory를 사용해야하는 프로젝트가 있습니다. .NET 응용 프로그램을 연결하기 위해 Novell Api (http://www.novell.com/coolsolutions/feature/11204.html)를 사용해 보았습니다. 잘 작동합니다..NET DirectoryServices가 포함 된 Novell eDirectory

그러나 요구 사항에 따라 Novell Api와 연결되지 않는 .net API가 필요합니다. 작동하지 않습니다. .NET Api로 연결 및 바인딩 DirectoryServices이 작동하지 않습니다.

우리의 노벨 e 디렉토리는 다음과 같은 자격 증명으로 설치됩니다

  1. IP 주소 : 10.0.x.xx (witsxxx.companyname.com)

  2. 트리 : SXXXX

  3. 새로운 트리 컨텍스트 : WIxxxK01-NDS.OU = STATE.O = ORG

  4. ADMIN 컨텍스트 : ou = STATE, o = ORG

  5. 관리자 : 관리자

  6. 암호 : 관리자

나는 코드

String ldapHost ="10.0.x.xx"; 
String loginDN = "cn=admin,cn=WIxxxK01-NDS,OU=STATE,o=ORG"; 
String password = string.Empty; 
String searchBase = "o=ORG"; 
String searchFilter = "(objectclass=*)"; 
Novell.Directory.Ldap.LdapConnection lc = new Novell.Directory.Ldap.LdapConnection(); 

try 
{ 
    // connect to the server 
    lc.Connect(ldapHost, LdapPort); 
    // bind to the server 
    lc.Bind(LdapVersion, loginDN, password); 
} 

이 올바르게 바인딩하고 검색을 수행 할 수 있습니다 다음과 노벨 API를 사용하여 사용.

이제 .NET APi를 사용하고 System.DirectoryServices 또는 System.DirectoryServices.Protocols을 사용할 때 연결 또는 바인딩되지 않습니다.

나는 심지어 다음과 같은 DirectoryEntry.Exists 방법을 테스트 할 수 없습니다. 그것은 예외가 될 것입니다.

string myADSPath = "LDAP://10.0.x.xx:636/OU=STATE,O=ORG"; 

// Determine whether the given path is correct for the DirectoryEntry. 
if (DirectoryEntry.Exists(myADSPath)) 
{ 
    Console.WriteLine("The path {0} is valid",myADSPath); 
} 
else 
{ 
    Console.WriteLine("The path {0} is invalid",myADSPath); 
} 

Server is not operational 또는 Local error occurred 등 내가 디렉토리 경로에 무슨 일이 일어나고 있는지 모르는 말하고있다.

나는 모든 예외로가는

DirectoryEntry de = new DirectoryEntry("LDAP://10.0.x.xx:636/O=ORG,DC=witsxxx,DC=companyname,DC=com", "cn=admin,cn=WIxxxK01-NDS,o=ORG", "admin"); 
DirectorySearcher ds = new DirectorySearcher(de, "&(objectClass=user)"); 
var test = ds.FindAll(); 

을 시도했다.

이 문제를 해결할 수 있도록 도와 주시겠습니까? DirectoryEntry의 경우 userDN은 어떻게되어야합니까?

나는 LdapDirectoryIdentifierSystem.Net.NetworkCredential과 같이 System.DirectoryServices.Protocols.LdapConnection도 사용했지만 결과는 없습니다. 같은 예외 만.

귀하의 귀중한 시간과 도움에 감사드립니다.(: 8028/NDS와 Dstrace을 선택 serverip로)를 Dstrace 분명 모든 탭과 활성화하여 LDAP 연결 오류를 진단 관리자의 e 디렉토리 서버에 대한 액세스를 얻고, iMonitor를 사용하려면

감사합니다, Binu

+0

내가 기억하는 한, 제대로 작동하지 못했습니다. [DirectoryEntry에 대한 MSDN 설명서] (http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry.aspx)에도 명확하게 다음과 같이 나와 있습니다. * DirectoryEntry 클래스는 노드 또는 개체를 ** Active 디렉토리 도메인 서비스 ** 계층 구조. * -'System.DirectoryServices'는 실제로 ** Active Directory **를 대상으로합니다 - 실제로 다른 것을 지원하지는 않습니다. 따라서 기본 Novell API를 계속 사용하거나 낮은 수준의 원시 LDAP (S.DS.Protocols') –

+0

을 조사해야 할 수도 있습니다. [이 기사의 CodeProject] (http://www.codeproject.com/ Articles/19097/eDirectory-Authentication-LdapConnection-and)을 시작점으로 사용하거나 [social.msdn.com의이 게시물] (http://social.msdn.microsoft.com/Forums/sk/)을 참조하십시오. netfxbcl/thread/bb145883-5f00-47f7-a7b7-1f2d09f4bf53) –

+0

원시 코드 (S.DS.Protocols)로 다음 코드를 시도했지만 예외가 있습니다. 시도하십시오 { LdapDirectoryIdentifier lid = new LdapDirectoryIdentifier ("10.0.x.xx", 389); System.Net.NetworkCredential cred = 새 System.Net.NetworkCredential ("cn = admin, cn = witsxxx-NDS, o = ORG", string.Empty); using (System.DirectoryServices.Protocols.LdapConnection lconn = new System.DirectoryServices.Protocols.LdapConnection (lid)) { lconn.Bind (cred); \t \t} } –

답변

0

LDAP 추적을 수행 한 다음 바인드를 수행하여 LDAP 측에서 발생하는 상황을 확인하여 더 자세한 오류가 있는지 확인하십시오. 또는 당신이 묶어서 연결을하기에 충분하다면.

+0

이 답변의 내용을 이해하고 싶습니다. 나는 Windows 전용 사람이고 Novell의 eDirectory에 연결하여 현재 Windows PC에 로그인 한 사용자가 Novell eDirectory 그룹 "WeAreHarris"의 구성원인지 확인합니다. 나는 어디서부터 시작해야할지 모른다. – jp2code

+0

@ jp2code 그런 다음 LDAP 추적을 사용하는 경우 누구 에게든지 디렉토리를 관리하고 바인드를 시도 할 때 지켜보십시오. 테스트를 위해 복제본을 선택해야 할 수도 있습니다. 정상적인 이벤트의 홍수로 테스트를 잃기 쉽기 때문에 최소한의 작업 만 수행하면됩니다. – geoffc

+0

그들은 클라이언트입니다. Sales Reps와 만 이야기 할 수 있으며 네트워크에 관해 필요한 정보를 얻지 못하고 있습니다. 우리는 Microsoft의 상점이기 때문에 복제본을 만들 수 없으며 Novell 네트워크는 여기에서 실행되지 않습니다. 우리 IT 그룹에는 Novell이 필요로하는 네트워크를 설정하는 방법을 아는 사람이 없습니다. – jp2code