使用应用程序凭据连接到eDirectory。然后验证用户

时间:2017-04-26 16:28:59

标签: c# .net ldap edirectory

我需要使用.NET& amp ;;连接到NetIQ eDirectory。 C#。必须使用应用程序凭据打开连接。打开连接后,我需要使用与S.DS.AccountManagement类似的方法在应用程序凭据的授权下验证用户凭据。

        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和重新绑定。密码。我该怎么办?

1 个答案:

答案 0 :(得分:0)

事实证明我们的客户弄错了。正确的方法是将连接直接绑定到个人的凭据,正如我在Novell.Directory.Ldap示例中演示的那样。

在NetIQ的论坛上有关于执行shell脚本的帖子,但我没有让它运行。