使用System.DirectoryServices更改密码时收到错误

时间:2012-01-18 09:46:56

标签: c# directoryservices change-password

我在其中一台服务器上部署了一个Web服务,该服务在内部使用System.DirectoryServices来使用以下代码更改密码:

            DirectoryEntry obDirectoryEntry = GetCurrentUserDirectoryEntry();
            obDirectoryEntry.Invoke("ChangePassword", new object[] { sOldPassword, newPassword });
            obDirectoryEntry.CommitChanges();
            obDirectoryEntry.Close();

此特定于不同域名时,此Web服务正常运行,但在从其他域名中搜索时失败并出现以下错误:

无法从域控制器读取配置信息,因为计算机不可用或访问被拒绝。

这可能是什么原因?什么是解决方法?

非常感谢, 依禅

1 个答案:

答案 0 :(得分:0)

需要有关特定网络设置的更多信息,但解决方法是指定有效的DomainController。

GetCurrentUserDirectoryEntry()方法中,您可以使用重载:

var user = new DirectoryEntry("LDAP://WorkingDomainController", ...);

请参阅:http://www.codeproject.com/KB/system/everythingInAD.aspx#7