Type.IsSecuritySafeCritical 屬性

定義

取得值,這個值表示目前類型在目前信任層級上是否為安全性安全關鍵,也就是說,它是否能執行重要作業並由安全性透明的程式碼存取。

C#
public virtual bool IsSecuritySafeCritical { get; }

屬性值

true 如果目前類型在目前信任層級為安全性安全關鍵,則為 ; false 如果安全性關鍵或透明,則為 。

備註

IsSecurityCriticalIsSecuritySafeCriticalIsSecurityTransparent 屬性會報告類型目前信任層級的透明度層級,如 Common Language Runtime (CLR) 所決定。 下表顯示這些屬性的組合:

安全性層級 IsSecurityCritical IsSecuritySafeCritical IsSecurityTransparent
重大 true false false
安全關鍵 true true false
透明 false false true

使用這些屬性會比檢查組件及其類型的安全性註釋、檢查目前的信任層級,以及嘗試複製執行階段規則更簡單。

重要

對於部分信任元件,此屬性的值取決於元件目前的信任層級。 例如,如果元件載入部分信任的應用程式域 (到沙盒化應用程式域) ,則運行時間會忽略元件的安全性批注。 元件及其所有類型都會被視為透明。 運行時間只會注意部分信任元件的安全性批註,只有當該元件載入至完全信任的應用程式域時, (例如,載入傳統型應用程式的默認應用程式域) 。 相較之下,信任的元件 (也就是說,全域程式集緩存中安裝的強名稱元件) 一律會以完全信任的方式載入,而不論應用程式域的信任層級為何,其目前的信任層級一律會完全信任。 您可以使用和 AppDomain.IsFullyTrusted 屬性來判斷元件和應用程式域Assembly.IsFullyTrusted目前的信任層級。

如需反映和透明度的詳細資訊,請參閱 反映的安全性考慮。 如需透明度的相關信息,請參閱 安全性變更

適用於

產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.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, 4.8.1
.NET Standard 2.0, 2.1

另請參閱