我有一个控制台应用程序可以删除一些文件,并且只有以管理员身份启动时才能执行此操作。
当应用程序不以管理员身份启动时,我希望它:
(有点像notepad++,当你尝试编辑某个文件时,它会询问你是否要以管理员身份重新启动)
这在 C# 中很容易做到吗?
bug*_*uga 10
感谢评论中的明智建议,我成功完成了它。
static void Main()
{
if (!IsAdministrator())
{
Console.WriteLine("restarting as admin");
StartAsAdmin(Assembly.GetExecutingAssembly().Location);
return;
}
...
}
public static bool IsAdministrator()
{
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
public static void StartAsAdmin(string fileName)
{
var proc = new Process
{
StartInfo =
{
FileName = fileName,
UseShellExecute = true,
Verb = "runas"
}
};
proc.Start();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1781 次 |
| 最近记录: |