我有一个在NETWORK SERVICE帐户下运行的Windows服务,需要查询Active Directory以获取有关用户的扩展信息。
在这种情况下,存在阻止服务访问Active Directory的访问限制。该服务必须作为NETWORK SERVICE运行,而不是域用户。
到目前为止,我将域用户的凭据(登录名和密码)传递给DirectorySearcher。从配置文件中检索凭据,这当然不是好事。
是否有另一种更优雅的方式从NETWORK SERVICE下运行的服务查询Active Directory?
答案 0 :(得分:5)
除非您的域管理员故意禁止此操作,否则默认情况下Active Directory允许任何计算机帐户运行LDAP查询。
因此,如果您的计算机已加入域,则使用NT AUTHORITY \ Network Service帐户应该可以正常工作。
或者,您可以将域用户设置为服务帐户。然后,您无需将任何用户名或密码传入DirectorySearcher
答案 1 :(得分:1)
您可以在Active Directory中为计算机帐户(COMPUTERNAME $)提供读取权限,但是@Harvery Kwok表示默认情况下应该具有此权限(如果计算机是域成员)。