Share via


CodeAccessPermission.Assert Metode

Definisi

Menyatakan bahwa kode panggilan dapat mengakses sumber daya yang dilindungi oleh permintaan izin melalui kode yang memanggil metode ini, bahkan jika penelepon yang lebih tinggi di tumpukan belum diberikan izin untuk mengakses sumber daya. Menggunakan Assert() dapat membuat masalah keamanan.

public:
 virtual void Assert();
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()

Penerapan

Pengecualian

Kode panggilan tidak memiliki Assertion.

-atau-

Sudah ada yang aktif Assert() untuk bingkai saat ini.

Keterangan

Tumpukan panggilan biasanya direpresentasikan sebagai tumbuh ke bawah, sehingga metode yang lebih tinggi dalam metode panggilan tumpukan panggilan lebih rendah di tumpukan panggilan. Panggilan Assert mencegah stack walk yang berasal lebih rendah di tumpukan panggilan agar tidak melanjutkan tumpukan panggilan di luar kode yang memanggil metode ini. Oleh karena itu, bahkan jika penelepon yang lebih tinggi pada tumpukan panggilan tidak memiliki izin yang diperlukan untuk mengakses sumber daya, mereka masih dapat mengaksesnya melalui kode yang memanggil metode ini pada izin yang diperlukan. Pernyataan hanya berlaku jika kode yang memanggil melewati pemeriksaan keamanan untuk izin yang ditegaskannya Assert .

Panggilan ke Assert efektif sampai kode panggilan kembali ke pemanggilnya. Hanya satu Assert yang dapat aktif pada bingkai. Upaya untuk memanggil Assert ketika ada aktif Assert pada bingkai menghasilkan SecurityException. Panggil RevertAssert atau RevertAll untuk menghapus yang aktif Assert.

Assert diabaikan untuk izin yang tidak diberikan karena permintaan izin tersebut tidak akan berhasil. Namun, jika kode yang lebih rendah pada tumpukan panggilan memanggil Demand izin tersebut, akan SecurityException dilemparkan ketika stack walk mencapai kode yang mencoba memanggil Assert. Ini terjadi karena kode yang disebut Assert belum diberikan izin, meskipun mencobanya Assert .

Perhatian

Karena panggilan Assert menghapus persyaratan bahwa semua kode dalam rantai panggilan harus diberikan izin untuk mengakses sumber daya yang ditentukan, itu dapat membuka masalah keamanan jika digunakan dengan tidak benar atau tidak pantas. Oleh karena itu, itu harus digunakan dengan sangat hati-hati.

Catatan Bagi Inheritor

Anda tidak dapat mengambil alih metode ini.

Berlaku untuk

Lihat juga