llu*_*ero 64 c# permissions administrator
是否可以为单个方法要求管理员权限?
像这样的东西:
[RequireAdminRightsForThisMethod()]
private void TheMethod(){
// Do something
}
Run Code Online (Sandbox Code Playgroud)
Dir*_*mar 83
您可以PrincipalPermission向方法添加属性以要求其执行的管理权限:
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
public void MyMethod()
{
}
Run Code Online (Sandbox Code Playgroud)
这在以下文章中有更详细的描述:
如果您正在寻找提升现有流程的方法,我怀疑这是可行的,因为在启动时会在流程级别为流程提供管理员权限(请参阅此相关问题).您必须"以管理员身份"运行您的应用程序才能获得所需的行为.
但是,有一些技巧可能会让你做你想做的事情,但要注意这可能会带来严重的安全风险.请参阅MSDN论坛中的以下主题:
更新(来自评论)
似乎如果更新需要提升,则应用程序更新最好由单独的进程(另一个可执行文件或使用命令行开关调用的应用程序)完成.对于该单独的流程,您可以按如下方式请求提升:
var psi = new ProcessStartInfo();
psi.FileName = "path to update.exe";
psi.Arguments = "arguments for update.exe";
psi.Verb = "runas";
var process = new Process();
process.StartInfo = psi;
process.Start();
process.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64476 次 |
| 最近记录: |