2011-03-18 91 views
3

我有一个在NETWORK SERVICE帐户下运行的Windows服务,并且需要查询Active Directory以获取有关用户的扩展信息。在NT AUTHORITY/NETWORK SERVICE下查询Active Directory

它看起来像在这种情况下有访问限制,阻止该服务访问Active Directory。该服务必须作为NETWORK SERVICE运行,而不是域用户。

到目前为止,我将域用户的凭据(登录名和密码)传递给DirectorySearcher。凭证从配置文件中检索,当然这并不好。

是否有另一种更优雅的方式来查询在NETWORK SERVICE下运行的服务的Active Directory?

+0

当你说“它看起来像...有访问限制”,你的意思是你知道有或没有工作,所以你认为有?我问,因为这应该工作。有防火墙阻碍了吗? – SGarratt 2011-03-19 16:05:35

+0

这不适合我,所以我的假设是有一些事情正在进行。 我不认为这是防火墙问题,因为当我指定域帐户访问AD它的作品。 – 2011-03-21 08:57:33

回答

5

除非您的域管理员故意禁止此操作,否则默认情况下Active Directory允许任何计算机帐户运行LDAP查询。

因此,如果您的计算机已加入域,则使用NT AUTHORITY \ Network Service帐户应该可以正常工作。

或者,您可以将域用户设置为服务帐户。然后,您不需要将任何用户名或密码传递到DirectorySearcher

+0

对于未来可能的用户:我做了从服务器浏览的错误。我以服务器名称\ adminuser登录,当然,IE发送了这些凭证。解决方案是从我以域名\ myuser登录的计算机上冲浪。我在浪费了30分钟的时间之后,双掌了自己。 – LosManos 2013-09-12 11:07:06

1

您可以在Active Directory中授予计算机帐户(COMPUTERNAME $)读取权限,但是@Harvery Kwok说默认情况下它应该具有此权限(如果计算机是域成员)。