Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么非人格身份比原始身份拥有更少的权利?_C#_Asp.net_Windows_Security - Fatal编程技术网

C# 为什么非人格身份比原始身份拥有更少的权利?

C# 为什么非人格身份比原始身份拥有更少的权利?,c#,asp.net,windows,security,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

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

否我想通过以下方式读取服务的状态:

using (var sc = new ServiceController(_ServiceName))
{
    return sc.Status == ServiceControllerStatus.Running;
}
这很好,然后模拟就关闭了。但我想使用windows身份验证和模拟。所以当我加上

<identity impersonate="true" />
模拟标识与进程标识相同。那么,为什么模拟身份的访问权限少于进程身份?如何避免这种情况


系统:Windows 7,UAC启用

可能您的服务器没有。

请注意,我解决了上述问题--请参阅我在这里的帖子:以及这里的原始文章:

所以您使用相同的本地管理员帐户从同一台机器访问服务,对吗?是的,它只有一台机器,而且只有一个用户帐户。(登录帐户、服务流程帐户和模拟帐户都是相同的)我刚刚发现:“请注意,通过网络验证但未以交互方式登录的远程用户可以连接到SCM,但不能执行需要其他访问权限的操作。要执行这些操作,用户必须以交互方式登录,或者服务必须使用其中一个服务帐户。“。因此,由于模拟身份是远程身份,因此它没有所需的访问权限。这是一台独立计算机,没有域/服务器
"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: