Share via


DynamicMethod.IsSecurityTransparent Properti

Definisi

Mendapatkan nilai yang menunjukkan apakah metode dinamis saat ini transparan pada tingkat kepercayaan saat ini, dan karenanya tidak dapat melakukan operasi penting.

public:
 virtual property bool IsSecurityTransparent { bool get(); };
public override bool IsSecurityTransparent { get; }
member this.IsSecurityTransparent : bool
Public Overrides ReadOnly Property IsSecurityTransparent As Boolean

Nilai Properti

true jika metode dinamis transparan keamanan pada tingkat kepercayaan saat ini; jika tidak, false.

Pengecualian

Metode dinamis tidak memiliki isi metode.

Keterangan

Properti IsSecurityCritical, IsSecuritySafeCritical, dan IsSecurityTransparent melaporkan tingkat transparansi metode dinamis sebagaimana 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 dalam 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 sekumpulan kode pemberian 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 perakitan dimuat. Jika rakitan dimuat dengan kepercayaan parsial (misalnya, ke domain aplikasi terkotakpasir), runtime mengabaikan anotasi keamanan rakitan. 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 pancaran pantulan dan transparansi, lihat Masalah Keamanan dalam Pancaran Pancaran. Untuk informasi tentang transparansi, lihat Perubahan Keamanan.

Berlaku untuk

Lihat juga