TypeBuilder.IsSecuritySafeCritical Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan nilai yang menunjukkan apakah jenis saat ini penting untuk keamanan; yaitu, apakah dapat melakukan operasi penting dan dapat diakses dengan kode transparan.
public:
virtual property bool IsSecuritySafeCritical { bool get(); };
public override bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overrides ReadOnly Property IsSecuritySafeCritical As Boolean
Nilai Properti
true
jika jenis saat ini adalah keamanan-aman-kritis; false
jika kritis keamanan atau transparan.
Pengecualian
Tipe dinamis saat ini belum dibuat dengan memanggil CreateType() metode .
Keterangan
Properti IsSecurityCritical, IsSecuritySafeCritical, dan IsSecurityTransparent melaporkan tingkat transparansi jenis, seperti yang ditentukan oleh runtime bahasa umum (CLR). Kombinasi properti ini diperlihatkan dalam tabel berikut:
Tingkat keamanan | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
---|---|---|---|
Kritis | true |
false |
false |
Sangat aman | true |
true |
false |
Transparan | false |
false |
true |
Menggunakan properti ini jauh lebih sederhana daripada memeriksa anotasi keamanan rakitan dan jenisnya, memeriksa tingkat kepercayaan saat ini, dan mencoba menduplikasi aturan runtime.
Runtime mulai mengevaluasi tingkat transparansi di perakitan. Misalnya, jika rakitan dinamis penting bagi keamanan, anotasi pada jenis diabaikan, dan semua jenis sangat penting bagi keamanan.
Secara default, rakitan dinamis mewarisi transparansi assembly yang memancarkannya. Anda dapat mengambil alih default ini dengan menggunakan AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)metode , , AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)atau AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) kelebihan beban dan menentukan atribut keamanan. Anda tidak dapat meningkatkan tingkat keamanan dengan melakukan ini; yaitu, kode transparan tidak dapat memancarkan kode kritis keamanan atau keamanan-aman-kritis. Atribut harus ditentukan ketika rakitan dinamis dibuat, atau tidak berlaku sampai rakitan disimpan ke disk dan dimuat ulang.
Catatan
Pewarisan default terbatas pada evaluasi transparansi runtime. Tidak ada atribut yang diterapkan ke rakitan dinamis. Jika Anda ingin menambahkan atribut keamanan, Anda harus menerapkannya sendiri.
Untuk informasi selengkapnya tentang pantulan pancaran dan transparansi, lihat Masalah Keamanan di Pancaran Pantulan. Untuk informasi tentang transparansi, lihat Perubahan Keamanan.