2017-04-26 117 views
0

我需要使用.NET & C#連接到NetIQ eDirectory。連接必須使用應用程序憑證打開。連接打開後,我需要使用與S.DS.AccountManagement類似的方法在應用程序憑據的權限下驗證用戶憑證。使用應用程序憑證連接到eDirectory。然後驗證用戶

 using (var context = new PrincipalContext(ContextType.Domain, path, appUserDn, appPassword)) 
     { 
      //Username and password for authentication. 
      var valid = context.ValidateCredentials(userDn, password); 
     } 

我試過Novell.Directory.Ldap,S.DS.DirectoryEntry,& S.DS.AccountManagement。最後一個需要AD並且不適用。

使用Novell.Directory.Ldap

測試..

 using (var cn = new LdapConnection()) 
     { 
      cn.Connect(server, int.Parse(port)); 
      cn.Bind(appUserDn, appPassword); //throws exception if invalid credentials.. 
      var passwordAttr = new LdapAttribute("userPassword", password); 
      cn.Compare(userDn, passwordAttr); // Only compares password, so no locked account check, etc. 
     } 

我目前的樣機採用S.DS.Protocols。

 var networkCredential = new NetworkCredential(
      appUserDn, 
      appPassword); 

     using (proto.LdapConnection cn = new proto.LdapConnection(new proto.LdapDirectoryIdentifier(server, int.Parse(port)), networkCredential, proto.AuthType.Basic)) 
     { 
      cn.Bind(); 

      /// Next validate user credentials.. 

     } 

我無法找到一個方法來驗證比重新分配NetworkCrentials並使用個人用戶名密碼&重新綁定其他用戶憑據。我應該如何繼續?

回答

0

事實證明我們的客戶錯了。正如我在Novell.Directory.Ldap示例中演示的,正確的方法是將連接直接綁定到個人憑據。

在NetIQ的論壇上發佈了一個關於執行shell腳本的貼子,但我沒有得到它的工作。

相關問題