在客户机器上部署Windows服务程序,其中一串代码需要访问域服务器修改用户密码,
总是报“未知的身份验证机制”的错误。但是,把这段代码抽离出来,写成一WinForm
程序部署在客户机器上运行,却能成功,在网上找了相关资料,没有获得解决。有遇到过类似情况的朋友帮忙解决一下啊!~部分代码如下:
de.path ="LDAP://192.168.**.**/CN=张三,OU=**科室,OU=**部门,OU=**公司,DC=CC,DC=FSLL,DC=CN";
de.Username="administrator";
de.Password="*********";
de.Invoke("SetPassword", new object[]{newPassword});

解决方案 »

  1.   

    有遇到过类似情况的朋友帮忙解决一下啊!~或者给个思路也行。在网上找相关的资料,有一篇文章也说写WinForm程序可以,但
    写WEB程序就不行,我现在用的是Windows服务,不知道是什么原因啊!~
      

  2.   

    服务管理==》登录==》选择administrator帐户,然后再看看。
      

  3.   

    原因在于权限问题。IIS本身是没有权修改AD域的密码的。所以要使IIS模拟服务器管理员的身份者可以正常执行程序。百度搜索 "ADHelper 活动目录用户操作类" 会找到你所想要的。
      

  4.   

    服务安装指定的为LocalService用户。
    this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;
      

  5.   

    问题解决了,还是要谢谢各位热心的朋友啊。使用非当前进程的用户登陆(C#高级编程里面是这样说的),即在域服务器Administrators组里面添加一个新的用户,用这个用户来登陆访问。我们事先用的是administrator登陆的。不是很明白什么意思,问题解决了就OK了。