0

管理者権限を必要とする Windows C# アプリケーションがあります。追加して変更するapp.manifestを作成しました

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

PCから直接実行すると、すべて問題なく、OSからUACが表示され、すべて正常に動作します。ここで、すべてのファイルを CD (または iso イメージ) に書き込むと、一部のコマンドが管理者権限で実行されず、エラーが発生します。特に、Directory.Delete、Directory.Copy (再帰パラメーターを使用) は機能しません。

また、デフォルトの Delete メソッドを次のようにラップしようとしました。

[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
public static void delete(string source, bool recursive)
{
    if (Directory.Exists(source))
    {
        Directory.Delete(source, recursive);
    }
}

しかし、「プリンシパル許可の要求に失敗しました」というメッセージが表示されます。エラー。

他に欠けているものはありますか?PC のディレクトリで実行している場合と CD から実行している場合で異なるのはなぜですか?

ありがとう、ファビオ

4

1 に答える 1

0

.NET には CAS (Code Access Security) というものがあります。CLR は、別のソースからのプログラムを別の方法で処理します (したがって、ローカル イントラネット、インターネット、およびローカル ディスクは別の方法で処理されます)。

CD からロードしている場合、設定は権限の少ないモードに戻ります。

CAS の詳細については、MSDN を参照してください

app.manifestファイルを追加して構成することで、特権を要求できます。

于 2014-01-13T14:50:10.680 に答える