CodeAccessPermission.PermitOnly Metódus

Definíció

Megakadályozza, hogy a hívásverem magasabb hívói az ezt a metódust meghívó kódot használják az összes erőforrás eléréséhez, kivéve az aktuális példány által megadott erőforrást.

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

Megvalósítás

Kivételek

Az aktuális keret már aktív PermitOnly() .

Megjegyzések

Important

Ez a PermitOnly módszer csak az erőforrások véletlen hozzáférésének teljes mértékben megbízható kóddal történő védelmére használható. Nem használható az erőforrások nem megbízható kóddal történő szándékos visszaélés elleni védelmére. Ha például a metódus A engedélyt ad ki PermitOnly , majd metódust Bhív meg, a metódus B felülírhatja a PermitOnly metódust egy Assertkiadással. Az úgynevezett metódus mindig magasabb a veremben. Ezért ha a metódus B megpróbál hozzáférni egy védett erőforráshoz, a biztonsági rendszer elkezdi ellenőrizni az engedélyeket, mert a metódus B az azonnali hívó, majd végigsétál a veremen, hogy meggyőződjön arról, hogy nincs Deny vagy PermitOnly alacsonyabb a veremben. Az erőforráshoz hozzáférni próbáló metódus Ba metódus használatával azonnal leállíthatja a veremjárást Assert . Ebben az esetben a PermitOnly veremre helyezett metódus A (a hívó metódus) soha nem lesz felderítve.

PermitOnly Denyhasonló ahhoz, hogy a veremjárások mindkét esetben sikertelenek lesznek, ha egyébként sikerrel járnának. A különbség az, hogy Deny olyan engedélyeket ad meg, amelyek miatt a verembejárás sikertelen lesz, de PermitOnly csak azokat az engedélyeket adja meg, amelyek nem okozzák a verembejárás meghiúsulását.

Hívja meg ezt a metódust, és győződjön meg arról, hogy a kód csak a megadott erőforrások eléréséhez használható. A hívás PermitOnly addig érvényes, amíg a hívó kód vissza nem tér a hívóhoz. Csak egy PermitOnly lehet aktív egy kereten. Egy hívási PermitOnly kísérlet, ha egy aktív PermitOnly létezik a kereten, egy SecurityException. Aktív hívás RevertPermitOnly vagy RevertAll eltávolítás PermitOnly.

PermitOnly a rendszer figyelmen kívül hagyja a nem megadott engedélyeket, mert az engedély iránti igény nem fog sikerülni. Ha azonban a hívási veremen alacsonyabb kód később kéri Demand az engedélyt, a rendszer egy olyan kódot ad vissza, SecurityException amikor a verembeli séta eléri a meghívni PermitOnlypróbált kódot. Ennek az az oka, hogy a hívott PermitOnly kód nem kapta meg az engedélyt, annak ellenére, hogy az engedélyt kérte PermitOnly . A hívásverem általában csökkenő tendenciaként jelenik meg, így a hívásverem hívási metódusaiban magasabb metódusok alacsonyabbak a hívásveremben.

Megjegyzések az öröklőkhöz

Ezt a metódust nem lehet felülbírálni.

A következőre érvényes: