Type.IsSecurityTransparent 属性

定义

获取一个值,该值指示当前类型在当前信任级别上是否是透明的而无法执行关键操作。

C#
public virtual bool IsSecurityTransparent { get; }

属性值

Boolean

如果该类型在当前信任级别上是安全透明的,则为 true;否则为 false

注解

如果此属性返回 true ,则 IsSecurityCriticalIsSecuritySafeCritical 属性返回 false

IsSecurityCriticalIsSecuritySafeCriticalIsSecurityTransparent 属性在其当前信任级别报告类型的透明度级别,由公共语言运行时 (CLR) 确定。 使用这些属性比检查程序集及其类型的安全批注、检查当前的信任级别,以及尝试复制运行时的规则要简单得多。

重要

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

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

适用于

产品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

另请参阅