gpt4 book ai didi

asp.net - 从 ASP.NET 查询远程计算机时出现 WMI 访问被拒绝错误

转载 作者:行者123 更新时间:2023-11-30 23:54:32 25 4
gpt4 key购买 nike

我有一个 ASP.NET 应用程序,它执行对远程系统的 WMI 调用。应用程序 Web.config 包含 选项,据我所知,它们应该强制代表应用程序用户执行应用程序代码。

问题是我收到“访问被拒绝”错误,尽管我可以在同一用户下的同一主机上的 PowerShell 控制台成功执行我的 WMI 请求到相关远程服务器。

// this doesn't work
ManagementScope scope = new ManagementScope();
scope.Path.NamespacePath = "root\\virtualization";
scope.Path.Server = "vs01";
scope.Connect(); // <-- here comes exception

# this works just fine
Get-WmiObject -Namespace 'root\virtualization' -Class Msvm_ComputerSystem -ComputerName vs01

转储 HttpContext.Current.User.Identity.Name、System.Security.Principal.WindowsIdentity.GetCurrent().Name、System.Threading.Thread.CurrentPrincipal.Identity.Name 属性表明模拟按预期工作。

想法?问题可能是某种 .NET 或 IIS 安全性吗?

最佳答案

您需要让域管理员为您的 Web 服务器机器启用委派。这是 Kerberos 的一项安全功能。默认情况下,中间服务器(在这种情况下是您的 Web 服务器)不允许将客户端的模拟上下文传递给远程服务器,除非它已被授予委派权限。如果您不这样做,远程目标服务器将看到以匿名用户身份进入的请求......如果它得到适当保护,将拒绝访问。

请注意,它的通用策略是只允许中间服务器委派给特定的目标服务器(称为约束委派),因此如果您的 Web 应用程序需要能够在网络中的任何服务器上调用 WMI,您可能会遇到问题。与您的域管理员交谈。

关于asp.net - 从 ASP.NET 查询远程计算机时出现 WMI 访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4627394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com