MethodBase.IsSecurityTransparent 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取一个值,该值指示当前方法或构造函数在当前信任级别上是透明的,因此无法执行关键操作。
public:
virtual property bool IsSecurityTransparent { bool get(); };
public virtual bool IsSecurityTransparent { get; }
member this.IsSecurityTransparent : bool
Public Overridable ReadOnly Property IsSecurityTransparent As Boolean
属性值
如果方法或构造函数在当前信任级别上是安全透明的,则为 true
;否则为 false
。
注解
如果此属性返回 true
,则 IsSecurityCritical 和 IsSecuritySafeCritical 属性返回 false
。
IsSecurityCritical、 IsSecuritySafeCritical和 IsSecurityTransparent 属性报告方法或构造函数在其当前信任级别上的透明度级别,由公共语言运行时 (CLR) 确定。 使用这些属性比检查程序集及其类型和成员的安全注释、检查当前信任级别以及尝试复制运行时的规则要简单得多。
重要
对于部分信任程序集,此属性的值取决于程序集的当前信任级别。 如果程序集加载到部分受信任的应用程序域 (例如,) 沙盒应用程序域中,运行时将忽略程序集的安全注释。 程序集及其所有类型都被视为透明。 仅当将部分信任程序集加载到完全信任的应用程序域 (例如,加载到桌面应用程序的默认应用程序域) 时,运行时才会注意该程序集的安全注释。 相比之下,受信任的程序集 (即,安装在全局程序集缓存) 中的强名称程序集始终以完全信任的方式加载,而不考虑应用程序域的信任级别,因此其当前信任级别始终完全受信任。 可以使用 和 AppDomain.IsFullyTrusted 属性确定程序集和应用程序域Assembly.IsFullyTrusted的当前信任级别。
有关反射和透明度的详细信息,请参阅 反射的安全注意事项。 有关透明度的信息,请参阅 安全更改。