TypeBuilder.IsSecurityTransparent 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得值,這個值表示目前類型是否為透明,因此無法執行重要作業。
public:
virtual property bool IsSecurityTransparent { bool get(); };
public override bool IsSecurityTransparent { get; }
member this.IsSecurityTransparent : bool
Public Overrides ReadOnly Property IsSecurityTransparent As Boolean
屬性值
如果類型為安全性透明,則為 true
,否則為 false
。
例外狀況
尚未呼叫 CreateType() 方法建立目前動態類型。
備註
IsSecurityCritical、 IsSecuritySafeCritical 和屬性會 IsSecurityTransparent 報告類型的透明度層級,由 common LANGUAGE runtime (CLR) 所決定。 下表顯示這些屬性的組合:
安全性層級 | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
---|---|---|---|
重大 | true |
false |
false |
安全關鍵 | true |
true |
false |
透明 | false |
false |
true |
使用這些屬性會比檢查組件及其類型的安全性註釋、檢查目前的信任層級,以及嘗試複製執行階段規則更簡單。
執行時間開始評估元件的透明度層級。 例如,如果動態元件為安全性關鍵,則會忽略類型上的注釋,而且所有類型都是安全性關鍵。
根據預設,動態元件會繼承發出它之元件的透明度。 您可以使用 AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) 、或方法多載, AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) 以及指定安全性屬性,來覆寫這個預設值。 您無法藉由執行下列操作來提高安全性層級:也就是說,透明程式碼無法發出安全性關鍵或安全性安全關鍵程式碼。 您必須在建立動態元件時指定屬性,否則在元件儲存至磁片並重載之前,都不會生效。
注意
預設繼承僅限執行時間的透明度評估。 沒有任何屬性會套用至動態元件。 如果您想要新增安全性屬性,您必須自行套用它們。
如需反映發出和透明度的詳細資訊,請參閱 反映發出中的安全性問題。 如需透明度的詳細資訊,請參閱 安全性變更。