1 つのメソッドに対して管理者権限を要求することはできますか?
このようなもの:
[RequireAdminRightsForThisMethod()]
private void TheMethod(){
// Do something
}
1 つのメソッドに対して管理者権限を要求することはできますか?
このようなもの:
[RequireAdminRightsForThisMethod()]
private void TheMethod(){
// Do something
}
メソッドに属性を追加してPrincipalPermission
、その実行に管理者権限を要求できます。
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
public void MyMethod()
{
}
これについては、次の記事で詳しく説明しています。
既存のプロセスを昇格させる方法を探している場合、起動時にプロセスレベルで管理者特権がプロセスに与えられるため、これが可能であるとは思えません (この関連する質問を参照してください)。目的の動作を得るには、アプリケーションを「管理者として」実行する必要があります。
ただし、やりたいことを実行できるいくつかのトリックがありますが、これにより深刻なセキュリティ リスクが生じる可能性があることに注意してください。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();
A method can require administrative privileges to run, but it's not possible to automatically elevate to Admin when executing a method.