C# 为什么非人格身份比原始身份拥有更少的权利?
我有一个ASP.NET MVC2服务,它由基于cassini/http.sys的web服务器托管。服务进程以本地管理员身份运行 否我想通过以下方式读取服务的状态: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
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: