为什么一个不受约束的身份比原始身份具有更少的权利?

时间:2011-04-21 15:21:43

标签: c# asp.net windows security

我有一个ASP.NET MVC2服务,它由基于cassini / http.sys的Web服务器托管。服务进程以本地管理员身份运行。

不,我想使用以下方式阅读服务的状态:

using (var sc = new ServiceController(_ServiceName))
{
    return sc.Status == ServiceControllerStatus.Running;
}

这很有效,然后假冒了。但我想使用Windows身份验证和模拟。所以当我添加

<identity impersonate="true" />

到web.config。对sc.Status的调用因InvalidOperationException而失败。内部异常是Win32Exception / ACCESS_DENIED。

"System.InvalidOperationException" caught. 
Message=Cannot open service 'abcd' on computer '.' .
Source=System.ServiceProcess
StackTrace:
   at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
   at System.ServiceProcess.ServiceController.Start(String[] args)
   at System.ServiceProcess.ServiceController.Start()
InnerException: System.ComponentModel.Win32Exception
   Message=Access denied
   ErrorCode=-2147467259
   NativeErrorCode=5
   InnerException: 

模拟身份与流程标识相同。那么,为什么模仿身份的访问权限比流程身份更少?如何避免这种情况?

系统:Windows 7,启用UAC

2 个答案:

答案 0 :(得分:0)

可能您的服务器不是trusted for delegation

答案 1 :(得分:0)