2

我有以下 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();
4

1 回答 1

4

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

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

如何正确使用 LogonUser 从工作组客户端模拟域用户

于 2012-05-25T22:52:46.120 回答