C#如何在运行时获取管理员权限
C# How to get admin privileges AT RUNTIME
有人知道如何在运行时获得管理员权限吗?
请不要建议:
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
希望有人知道该怎么做。
我的意思是,例如,考虑这种情况:我有一个应用程序在没有管理员权限的情况下运行,通常不会在您的计算机上进行任何更改。但是如果你点击一个特定的按钮,应用程序会要求管理员权限,然后做一些需要的事情。
您无法更改当前 运行 进程的权限级别。您可以启动一个新进程,请求提升权限。 Process.Start() 支持标志 "runas".
using (Process configTool = new Process())
{
configTool.StartInfo.FileName = "foo.exe"
configTool.StartInfo.Arguments = "--bar";
configTool.StartInfo.Verb = "runas";
configTool.Start();
configTool.WaitForExit();
}
见Elevating process privilege programmatically?
您可以将应用程序的功能分离到第二个可执行文件中,或者使用 "runas" 提升的权限重新启动您的应用程序。
有人知道如何在运行时获得管理员权限吗? 请不要建议:
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
希望有人知道该怎么做。
我的意思是,例如,考虑这种情况:我有一个应用程序在没有管理员权限的情况下运行,通常不会在您的计算机上进行任何更改。但是如果你点击一个特定的按钮,应用程序会要求管理员权限,然后做一些需要的事情。
您无法更改当前 运行 进程的权限级别。您可以启动一个新进程,请求提升权限。 Process.Start() 支持标志 "runas".
using (Process configTool = new Process())
{
configTool.StartInfo.FileName = "foo.exe"
configTool.StartInfo.Arguments = "--bar";
configTool.StartInfo.Verb = "runas";
configTool.Start();
configTool.WaitForExit();
}
见Elevating process privilege programmatically?
您可以将应用程序的功能分离到第二个可执行文件中,或者使用 "runas" 提升的权限重新启动您的应用程序。