CodeAccessPermission.PermitOnly Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.