本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Type.IsSecurityCritical 属性

.NET Framework (current version)
 

获取一个值,该值指示当前的类型在当前信任级别上是安全关键的还是安全可靠关键的,并因此可以执行关键操作。

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)

public virtual bool IsSecurityCritical { get; }

属性值

Type: System.Boolean

如果当前类型在当前信任级别上是安全关键的或安全可靠关键的,则为 true;如果它是透明的,则为 false

IsSecurityCritical , ,IsSecuritySafeCritical, ,和 IsSecurityTransparent 属性报告在其当前的信任级别,由公共语言运行时 (CLR) 类型的透明度级别。 下表中显示这些属性的组合︰

安全级别

IsSecurityCritical

IsSecurityCritical

IsSecurityTransparent

严重

true

false

false

可靠关键

true

true

false

透明

false

false

true

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

System_CAPS_important重要事项

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

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

.NET Framework
自 4.0 起可用
返回页首
显示: