DynamicMethod.IsSecuritySafeCritical Properti

Definisi

Mendapatkan nilai yang menunjukkan apakah metode dinamis saat ini adalah keamanan-aman-kritis pada tingkat kepercayaan saat ini; 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 metode dinamis adalah keamanan-aman-kritis pada tingkat kepercayaan saat ini; false jika kritis keamanan atau 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 Keamanan Aman Kritis IsSecurityTransparent
Penting true false false
Kondisi kritis yang aman true true false
Transparent 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 berisinya 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 Transparent Transparent
    Sepenuhnya kritis Penting Penting
    Transparansi campuran Transparent Transparent
    Agnostik keamanan Kritikal untuk Keamanan Penting

    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 KodeSecurity-Transparent, Tingkat 1 dan KodeSecurity-Transparent, Tingkat 2.

    Note

    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 rakitan tepercaya sebagian tergantung pada bagaimana assembly dimuat. Jika rakitan dimuat dengan kepercayaan parsial (misalnya, ke domain aplikasi terkotakpasir), runtime mengabaikan anotasi keamanan rakitan. Rakitan 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 perakitan.

Untuk informasi selengkapnya tentang pancaran pantulan dan transparansi, lihat Masalah Keamanan di Pancaran Refleksi. Untuk informasi tentang transparansi, lihat Perubahan Keamanan.

Berlaku untuk

Lihat juga