首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows 2008或更高版本上检测提升的权限

问在Windows 2008或更高版本上检测提升的权限
EN

Stack Overflow用户
提问于 2016-01-26 11:14:17
回答 2查看 458关注 0票数 12

我有一个运行在Windows平台(2008或更高版本)上的C#,.Net 4.6.1 Windows应用程序,它需要“以管理员身份运行”。需要提升权限,因为应用程序更改各个文件夹上的用户访问权限(在IIS默认网站根目录下,如果有关系的话)。

在检测应用程序是否已“以管理员身份运行”方面,我没有运气。如果我正常启动应用程序(即而不是作为管理员),则如下代码

代码语言:javascript
复制
var isAdmin = WindowsIdentity.GetCurrent().Owner.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid);

返回true,但是更改目录上某些用户访问权限的代码失败,特权不足。

如果我以管理员身份运行应用程序,上面的检查也会返回true,但是用户访问权限的更改工作得很好。

我所作的其他尝试都没有成功:

  • 按照建议使用GetTokenInformation方法在这里中使用32.dll
  • 将清单文件添加到我将requestedExecutionLevel设置为requireAdministrator的应用程序中

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-02-05 10:20:49

尝试更改已知文件夹的权限,如果有异常,则您知道程序尚未以管理员身份运行。

票数 2
EN

Stack Overflow用户

发布于 2016-02-05 23:02:12

以下内容必须有效(我希望如此;我有一个Windows客户端,它正在与我一起工作)。

代码语言:javascript
复制
var Identity = WindowsIdentity.GetCurrent();
var Principal = new WindowsPrincipal(Identity);
bool IsAdmin = Principal.IsInRole(WindowsBuiltInRole.Administrator);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35012530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档