PrincipalContext如何登录域服务器

时间:2012-05-25 21:58:43

标签: c# active-directory

我有以下C#代码连接到我的域服务器并对其执行某些操作。我的计算机上的一切正常,我可以运行所有命令。

我的问题是:用于连接服务器的凭据是什么?我假设它使用当前用户凭据。所以我真正的问题是这将适用于普通用户。我是管理员,它在我的机器上工作正常。

但是我想知道非管理员是否也会这样?

PrincipalContext AD = new PrincipalContext(ContextType.Domain, "172.18.4.4");

UserPrincipal u = new UserPrincipal(AD);
u.SamAccountName = Environment.UserName;

PrincipalSearcher search = new PrincipalSearcher(u);

UserPrincipal result = (UserPrincipal)search.FindOne();

1 个答案:

答案 0 :(得分:4)

如果该代码在Windows应用程序中运行,则使用的凭据是当前Windows用户的凭据,它应该在域中正常工作。如果代码在ASP.NET站点中运行,则凭据是运行站点的应用程序池中的凭据。在最后一种情况下,您可能需要使用应用程序池的标识:LocalSystem,NetworkService ...

在以上任何一种情况下,您都可以冒充用户在以下位置运行此代码:(查看答案)

How to use LogonUser properly to impersonate domain user from workgroup client