ClickOnce 和管理员权限

Posted 毛毛虫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClickOnce 和管理员权限相关的知识,希望对你有一定的参考价值。

有些程序需要管理员权限需要运行,同时又想用ClickOnce进行发布,这时候就麻烦了,两者是互斥的。

解决方案是,去掉管理员权限的要求,可以进行发布。

程序启动的时候,加载程序员权限的请求。

代码如下:

if (WindowsIdentity.GetCurrent().Owner == WindowsIdentity.GetCurrent().User) // Check for Admin privileges
{
try
{
this.Visible = false;
ProcessStartInfo info = new ProcessStartInfo(Application.ExecutablePath);
info.UseShellExecute = true;
info.Verb = "runas"; // invoke UAC prompt
Process.Start(info);
}
catch (Win32Exception ex)
{
if (ex.NativeErrorCode == 1223)
MessageBox.Show("该程序需要管理员权限,您必须选择“是”");
else
MessageBox.Show("程序发生错误,错误信息是:" + ex.Message);
}
Application.Exit();
}

以上是关于ClickOnce 和管理员权限的主要内容,如果未能解决你的问题,请参考以下文章

ClickOnce管理员启动并且支持ClickOnce更新

[ClickOnce] - Win10 管理员模式下无法安装 ClickOnce 之解决

Oracle 说明用户、权限和角色的关系,以及用户权限的管理有哪些?

关于后台管理权限的问题

系统管理员权限(administrator)和普通用户权限(user)都有哪些具体的权限区别?

win8超级管理员权限怎么开启和关闭