1

コードが完全信頼モードで実行されているかどうかを確認するにはどうすればよいですか? メソッドを使用して特定のアクセス許可を確認するためのいくつかの提案を見てきましSecurityManager.IsGranted()たが、部分信頼モードの特定のアクセス許可では FileSystemWatcher クラスを使用するのに十分ではないため、特に完全な信頼を確認したいと考えています。

4

1 に答える 1

1

私の知る限り、3.5 と 4.0 の両方で透過的なコード (完全に信頼されていない場合、おそらく少なくとも 4.0 未満) で機能するアプローチは 1 つだけです: 無制限のアクセス許可セットを要求し、要求が失敗した場合は SecurityException をキャッチします。例えば:

public static bool RunningWithFullTrust()
{
    bool result;
    try
    {
        (new PermissionSet(PermissionState.Unrestricted)).Demand();
        result = true;
    }
    catch (SecurityException)
    {
        result = false;
    }

    return result;
}

これは、例外をキャッチして無視するという現在のアプローチよりも、おそらく何の利点もありません。

4.0 には、潜在的に役立つ新しいAppDomain.IsFullyTrustedメソッドがあります。

于 2013-06-18T14:58:02.173 に答える