IStackWalk Interfész

Definíció

Kezeli a verembejárást, amely meghatározza, hogy a hívásverem összes hívója rendelkezik-e a védett erőforrás eléréséhez szükséges engedélyekkel.

public interface class IStackWalk
public interface IStackWalk
[System.Runtime.InteropServices.ComVisible(true)]
public interface IStackWalk
type IStackWalk = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IStackWalk = interface
Public Interface IStackWalk
Származtatott
Attribútumok

Megjegyzések

Figyelmeztetés

A Code Access Security (CAS) elavult a .NET-keretrendszer és a .NET összes verziójában. A .NET legújabb verziói nem tartják tiszteletben a CAS-megjegyzéseket, és cas-okkal kapcsolatos API-k használata esetén hibákat okoznak. A fejlesztőknek alternatív módot kell keresnie a biztonsági feladatok elvégzésére.

A részben megbízható kód mindig biztonsági kockázatot jelent. Néha manipulálható, hogy olyan rosszindulatú kód nevében hajtson végre műveleteket, amelyek nem rendelkeznek engedéllyel az erőforráshoz való hozzáféréshez. Ily módon a rosszindulatú kódok nagyobb biztonsági hozzáférést érhetnek el, mint amennyit engedélyezni kell.

A közös nyelvi futtatókörnyezet segít megvédeni a felügyelt kódot ezektől a támadásoktól, ha minden híváson futtat egy stack-sétát. A verembejáráshoz a hívásverem összes kódjának rendelkeznie kell engedéllyel egy védett erőforrás eléréséhez. Mivel a támadást megkísérlő kód mindig valahol a hívásveremben lesz, nem fogja tudni túllépni a saját biztonsági engedélyeit.

Metódusok

Name Description
Assert()

Azt állítja, hogy a hívó kód hozzáférhet az aktuális engedélyobjektum által azonosított erőforráshoz, még akkor is, ha a veremben magasabb szintű hívók nem kaptak engedélyt az erőforrás elérésére.

Demand()

Futásidőben határozza meg, hogy a hívásverem összes hívója megkapta-e az aktuális engedélyobjektum által megadott engedélyt.

Deny()

Demand() A hívó kódon áthaladó aktuális objektum mindegyikének meghiúsulását okozza.

PermitOnly()

A híváskódon áthaladó összes objektum kivételével minden Demand() objektum sikertelen lesz, még akkor is, ha a hívásverem magasabb kódja engedélyt kapott más erőforrások elérésére.

A következőre érvényes: