1

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

4

1 回答 1

1

AFAIK,只有一种方法适用于 3.5 和 4.0 中的透明代码(如果它不完全受信任,您的代码可能至少低于 4.0):要求不受限制的权限集并在要求失败时捕获 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 回答