Type.IsSecuritySafeCritical 属性

定义

获取一个值,该值指示当前类型在当前信任级别上是否是安全可靠关键的;即它是否可以执行关键操作并可以由透明代码访问。

public:
 virtual property bool IsSecuritySafeCritical { bool get(); };
public virtual bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overridable ReadOnly Property IsSecuritySafeCritical As Boolean

属性值

true 如果当前类型在当前信任级别为安全关键安全类型,则为 ; false 如果安全关键或透明,则为 。

注解

IsSecurityCriticalIsSecuritySafeCriticalIsSecurityTransparent 属性报告类型在其当前信任级别的透明度级别,由公共语言运行时 (CLR) 确定。 下表显示了这些属性的组合:

安全级别 IsSecurityCritical IsSecurityCritical IsSecurityTransparent
严重 true false false
安全关键 true true false
透明 false false true

使用这些属性比检查程序集及其类型的安全批注、检查当前的信任级别,以及尝试复制运行时的规则要简单得多。

重要

对于部分信任程序集,此属性的值取决于程序集的当前信任级别。 例如,如果程序集加载到部分受信任的应用程序域 (沙盒应用程序域) ,则运行时将忽略程序集的安全注释。 程序集及其所有类型都被视为透明。 仅当该程序集加载到完全受信任的应用程序域 (例如,在桌面应用程序) 的默认应用程序域中时,运行时才会注意部分信任程序集的安全注释。 相比之下,受信任的程序集 (即,安装在全局程序集缓存) 中的强名称程序集始终以完全信任方式加载,而不考虑应用程序域的信任级别,因此其当前信任级别始终完全受信任。 可以使用 和 AppDomain.IsFullyTrusted 属性确定程序集和应用程序域Assembly.IsFullyTrusted的当前信任级别。

有关反射和透明度的详细信息,请参阅 反射的安全注意事项。 有关透明度的信息,请参阅 安全更改

适用于

另请参阅