我有一个运行在Windows平台(2008或更高版本)上的C#,.Net 4.6.1 Windows应用程序,它需要“以管理员身份运行”。需要提升权限,因为应用程序更改各个文件夹上的用户访问权限(在IIS默认网站根目录下,如果有关系的话)。
在检测应用程序是否已“以管理员身份运行”方面,我没有运气。如果我正常启动应用程序(即而不是作为管理员),则如下代码
var isAdmin = WindowsIdentity.GetCurrent().Owner.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid);返回true,但是更改目录上某些用户访问权限的代码失败,特权不足。
如果我以管理员身份运行应用程序,上面的检查也会返回true,但是用户访问权限的更改工作得很好。
我所作的其他尝试都没有成功:
GetTokenInformation方法在这里中使用32.dllrequestedExecutionLevel设置为requireAdministrator的应用程序中提前感谢您的帮助。
发布于 2016-02-05 10:20:49
尝试更改已知文件夹的权限,如果有异常,则您知道程序尚未以管理员身份运行。
发布于 2016-02-05 23:02:12
以下内容必须有效(我希望如此;我有一个Windows客户端,它正在与我一起工作)。
var Identity = WindowsIdentity.GetCurrent();
var Principal = new WindowsPrincipal(Identity);
bool IsAdmin = Principal.IsInRole(WindowsBuiltInRole.Administrator);https://stackoverflow.com/questions/35012530
复制相似问题