检查完全信任

时间:2013-06-18 13:26:12

标签: .net code-access-security full-trust partial-trust

如何检查我的代码是否以完全信任模式运行?我已经看到了一些使用SecurityManager.IsGranted()方法检查特定权限的建议,但我特别想检查完全信任,因为部分信任模式中的特定权限不足以使用FileSystemWatcher类。

1 个答案:

答案 0 :(得分:1)

AFAIK,只有一种方法适用于透明代码(如果它不完全受信任,那么它可能至少在4.0以下):要求不受限制的权限集并在需求失败时捕获SecurityException。 e.g:

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

    return result;
}

这可能对你目前捕获和忽略异常的方法没有任何好处。

对于4.0,有一种新的AppDomain.IsFullyTrusted方法可能会有用。

相关问题