DynamicMethod.IsSecurityCritical 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 metode dinamis saat ini penting bagi keamanan atau keamanan kritis, dan karenanya dapat melakukan operasi penting.
public:
virtual property bool IsSecurityCritical { bool get(); };
public override bool IsSecurityCritical { get; }
member this.IsSecurityCritical : bool
Public Overrides ReadOnly Property IsSecurityCritical As Boolean
Nilai Properti
true
jika metode dinamis saat ini kritis keamanan atau keamanan-aman-kritis; false
jika transparan.
Pengecualian
Metode dinamis tidak memiliki isi metode.
Keterangan
Properti IsSecurityCritical, IsSecuritySafeCritical, dan IsSecurityTransparent melaporkan tingkat transparansi metode dinamis seperti yang ditentukan oleh runtime bahasa umum (CLR). Kombinasi properti ini diperlihatkan dalam tabel berikut:
Tingkat keamanan | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
---|---|---|---|
Kritis | true |
false |
false |
Kritis 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.
Transparansi metode dinamis tergantung pada modul yang terkait dengannya. Jika metode dinamis dikaitkan dengan jenis daripada modul, transparansinya tergantung pada modul yang berisi jenis . Metode dinamis tidak memiliki anotasi keamanan, sehingga diberi transparansi default untuk modul terkait.
Metode dinamis yang dihosting secara anonim selalu transparan, karena modul yang disediakan sistem yang berisi metode tersebut transparan.
Transparansi metode dinamis yang terkait dengan rakitan tepercaya (yaitu, rakitan bernama kuat yang diinstal di cache perakitan global) dijelaskan dalam tabel berikut.
Anotasi perakitan Transparansi tingkat 1 Transparansi tingkat 2 Sepenuhnya transparan Transparan Transparan Sepenuhnya kritis Kritis Kritis Transparansi campuran Transparan Transparan Keamanan-agnostik Sangat aman Kritis Misalnya, jika Anda mengaitkan metode dinamis dengan jenis yang ada di mscorlib.dll, yang memiliki transparansi campuran tingkat 2, metode dinamis transparan dan tidak dapat menjalankan kode penting. Untuk informasi tentang tingkat transparansi, lihat Kode Transparan Keamanan, Tingkat 1 dan Kode Transparan Keamanan, Tingkat 2.
Catatan
Mengaitkan metode dinamis dengan modul dalam rakitan tingkat 1 tepercaya yang agnostik keamanan, seperti System.dll, tidak mengizinkan peningkatan kepercayaan. Jika set pemberian kode yang memanggil metode dinamis tidak menyertakan set pemberian System.dll (yaitu, kepercayaan penuh), SecurityException dilemparkan ketika metode dinamis dipanggil.
Transparansi metode dinamis yang terkait dengan perakitan tepercaya sebagian tergantung pada bagaimana perakitan dimuat. Jika rakitan dimuat dengan kepercayaan parsial (misalnya, ke domain aplikasi terkotakpasir), runtime mengabaikan anotasi keamanan perakitan. Perakitan dan semua jenis dan anggotanya, termasuk metode dinamis, diperlakukan sebagai transparan. Runtime memperhatikan anotasi keamanan hanya jika rakitan kepercayaan parsial dimuat dengan kepercayaan penuh (misalnya, ke domain aplikasi default aplikasi desktop). Dalam hal ini, runtime menetapkan metode dinamis transparansi default untuk metode sesuai dengan anotasi assembly.
Untuk informasi selengkapnya tentang pantulan pancaran dan transparansi, lihat Masalah Keamanan di Pancaran Pantulan. Untuk informasi tentang transparansi, lihat Perubahan Keamanan.