Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 C#LDAP SetPassword抛出RPC服务器不可用_C# 4.0_Active Directory_Ldapconnection - Fatal编程技术网

C# 4.0 C#LDAP SetPassword抛出RPC服务器不可用

C# 4.0 C#LDAP SetPassword抛出RPC服务器不可用,c#-4.0,active-directory,ldapconnection,C# 4.0,Active Directory,Ldapconnection,我正在尝试创建一个新用户->设置密码并启用帐户 之前我只使用了一个对象,但在看了几篇文章之后,我决定对3个不同的操作使用“using” string strDisplayName = txtFirstName.Text + " " + txtLastName.Text; string strUser = txtLoginName.Text; string pw = "pass@123"; using (var objADAM

我正在尝试创建一个新用户->设置密码并启用帐户

之前我只使用了一个对象,但在看了几篇文章之后,我决定对3个不同的操作使用“using”

        string strDisplayName = txtFirstName.Text + " " + txtLastName.Text;
        string strUser = txtLoginName.Text;

        string pw = "pass@123";


        using (var objADAM = new DirectoryEntry("LDAP://" + adlink + "/CN=Users,DC=SS,DC=COM", "ss\\luser", "pass@123", AuthenticationTypes.Secure))
        {


            const long ADS_OPTION_PASSWORD_PORTNUMBER = 6;
            const long ADS_OPTION_PASSWORD_METHOD = 7;

            const int ADS_PASSWORD_ENCODE_CLEAR = 1;
            string strPort = "389";
            int intPort = Int32.Parse(strPort);

            using (var objUser = objADAM.Children.Add("CN=" + strUser, "user"))
            {
                objUser.Properties["sAMAccountName"].Add(strUser);
                objUser.CommitChanges();
            }
        }

        using (var user = new DirectoryEntry("LDAP://" + adlink + "/CN=" + strUser + ",CN=Users,DC=SS,DC=COM", "ss\\rluser", "pass@123"))
        {
            user.Invoke("SetPassword", new object[] { "password" });
            user.CommitChanges();
        }



        using (var user = new DirectoryEntry("LDAP://" + adlink + "/CN=" + strUser + ",CN=Users,DC=SS,DC=COM", "ss\\rluser", "pass@123"))
        {

            //Enable account and change password on first logon flag
            user.Properties["userAccountControl"].Value = 0x200;
            user.Properties["pwdLastSet"].Value = 0;
            user.CommitChanges();

        }
我必须提到,我在domian之外,正在尝试连接到另一个域上的远程广告。凭证已通过,但管理员已通过

用户创建进行得很顺利(在端口打开和LDAP连接出现一些问题之后),但是调用invoke->setpassword时会出现问题

错误是:“RPC服务器不可用”,为了确保我的代码没有出错,我下载了一个LDAP管理工具,并尝试重置现有用户的密码->相同的错误

台阶 -已检查正在运行的RPC服务 -打开的RPC端口-135,诸如此类..基本上每个端口都要打开:|

感谢您的帮助

谢谢
Rajat

使用adlink是字符串域,因为AD方法调用时使用域名:“abc.com”

例如: Microsoft建议使用DNS进行访问。
如果要访问的计算机连接到不同的域,则必须在“C:\Windows\System32\drivers\etc”目录的主机文件中将其指定为“ip dnsname”。

对此有解决方法吗?
            DirectoryEntry de = new DirectoryEntry();
            de.Path = "LDAP://dnsname.domain.com:389/OU=Companies;