如何使用Windows服务在Windows 7中获取当前用户凭据?

时间:2011-07-28 06:50:53

标签: .net windows-services active-directory

我正在尝试使用Windows 7中的Windows服务获取当前的用户凭据。

当我在DEBUG模式上运行下面的代码时(请注意,当我在DEBUG模式下运行时,winservice在我的User而不是LocalSystem上运行),没有问题。但是,当WinService在机器上的LocalSystem帐户上运行时,当我将代码作为“已发布”(不是调试)和Windows服务运行时,我无法从活动目录中获取当前用户?

using (DirectoryEntry de = new DirectoryEntry("LDAP://" + DomainName))
{
    using (DirectorySearcher adSearch = new DirectorySearcher(de))
    {
        adSearch.Filter = "(sAMAccountName=" + Environment.UserName + ")";
        SearchResult adSearchResult = adSearch.FindOne();

        UserInternalEmail = GetProperty(adSearchResult, "mail");
    }
}

提前致谢,

1 个答案:

答案 0 :(得分:0)

LocalSystem没有本地系统之外的权限,因此很明显AD / LDAP将拒绝它的查询。只需在AD / LDAP /域帐户下运行该服务即可。