Bagikan melalui


DynamicMethod.IsSecurityCritical Properti

Definisi

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.

Berlaku untuk

Lihat juga