CodeAccessPermission.Assert Metoda

Definice

Deklaruje, že volající kód může přistupovat k prostředku chráněnému požadavek oprávnění prostřednictvím kódu, který volá tuto metodu, a to i v případě, že volající vyšší v zásobníku nemají udělené oprávnění pro přístup k prostředku. Používání Assert() nástroje může vytvářet problémy se zabezpečením.

public:
 virtual void Assert();
public:
 void Assert();
public void Assert ();
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
[<System.Diagnostics.Conditional("FEATURE_MONO_CAS")>]
member this.Assert : unit -> unit
Public Sub Assert ()

Implementuje

Atributy

Výjimky

Volající kód nemá Assertion .

-nebo- Pro aktuální snímek Assert() už je aktivní.

Poznámky

Zásobník volání je obvykle reprezentován jako rozrůstající se, takže metody vyšší v metodách volání zásobníku volání jsou v zásobníku volání nižší. Volání brání tomu, aby se zásobník s původem nižší v zásobníku volání protáhal zásobník volání nad rámec Assert kódu, který volá tuto metodu. Proto i v případě, že volající vyšší v zásobníku volání nemají požadovaná oprávnění pro přístup k prostředku, mají k tomuto prostředku stále přístup prostřednictvím kódu, který tuto metodu volá s potřebným oprávněním. Kontrolní výraz je účinný pouze v případě, že kód, který volá , projde bezpečnostní kontrolu Assert oprávnění, které prosadí.

Volání metody je Assert efektivní, dokud se volající kód nevrátí volajícímu. V rámci Assert může být aktivní jenom jeden. Pokus o volání v případě, že v rámci existuje Assert Assert aktivní, je výsledkem SecurityException . Pokud RevertAssert chcete odebrat aktivní objekt , RevertAll zavolejte nebo Assert .

Assert se ignoruje pro oprávnění, které není uděleno, protože požadavek na toto oprávnění nebude úspěšný. Pokud však pro toto oprávnění volá nižší kód v zásobníku volání , je vyvolána výjimka , když vás zásobník dosáhne kódu, který se Demand SecurityException pokusil volat Assert metodu . K tomu dochází, protože kód, který volal , Assert nemá udělené oprávnění, i když se o to Assert pokusil.

Upozornění

Vzhledem k tomu, že volání odebere požadavek, aby měl veškerý kód v řetězu volání udělené oprávnění pro přístup k zadanému prostředku, může to otevřít problémy se zabezpečením, pokud se použije nesprávně nebo Assert nesprávně. Proto by se měl používat s velkou opatrností.

Poznámky pro dědice

Tuto metodu nelze přepsat.

Platí pro

Viz také