Ошибка доступа к WMI при запросе удаленного компьютера из ASP.NET - PullRequest
3 голосов
/ 07 января 2011

У меня есть приложение ASP.NET, которое выполняет вызов WMI для удаленной системы. Приложение Web.config содержит параметры и , которые, как я понимаю, должны заставить код приложения выполняться от имени пользователя приложения.

Проблема в том, что я получаю ошибку «Доступ запрещен», несмотря на то, что я могу успешно выполнить мой запрос WMI с консоли PowerShell на том же хосте под тем же пользователем на рассматриваемом удаленном сервере.

// 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?

1 Ответ

4 голосов
/ 07 января 2011

Вам необходимо, чтобы администратор домена включил делегирование для вашего веб-сервера. Это функция безопасности Kerberos. По умолчанию промежуточному серверу (в данном случае вашему веб-серверу) запрещено передавать контекст олицетворения клиента на удаленный сервер, если ему не предоставлено разрешение на делегирование. Если вы этого не сделаете, удаленный целевой сервер увидит запрос, поступивший как Анонимный пользователь ... которому, если он должным образом защищен, будет отказано в доступе.

Обратите внимание, что существует общая политика, разрешающая промежуточному серверу делегировать только определенным целевым серверам (так называемое ограниченное делегирование), поэтому, если ваше веб-приложение должно иметь возможность вызывать WMI на любом сервере вашей сети, у вас могут возникнуть проблемы. Поговорите со своим администратором домена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...