CodeAccessPermission.Assert Metoda

Definice

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

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í rámec již existuje aktivní Assert() .

Poznámky

Zásobník volání je obvykle reprezentován jako rostoucí, takže metody vyšší ve volání zásobníku volání nižší v zásobníku volání. Volání Assert brání tomu, aby chůze zásobníku pocházející z nižší části zásobníku volání posouvat zásobník volání nad rámec kódu, který volá tuto metodu. I když tedy volající na zásobníku volání nemají požadovaná oprávnění pro přístup k prostředku, můžou k němu stále přistupovat prostřednictvím kódu, který volá tuto metodu pro potřebná oprávnění. Kontrolní výraz je účinný pouze v případě, že kód, který volá, Assert projde bezpečnostní kontrolou oprávnění, které se má uplatnit.

Volání Assert je účinné, dokud se volající kód nevrátí do volajícího. Na snímku může být aktivní jenom jeden Assert . Pokus o volání Assert , pokud Assert aktivní existuje na rámečku, výsledkem je SecurityException. Zavolat RevertAssert nebo RevertAll odebrat aktivní Assert.

Assert je ignorován pro oprávnění, které není uděleno, protože požadavek na toto oprávnění nebude úspěšný. Pokud je však kód nižší v volání Demand zásobníku volání pro toto oprávnění, SecurityException vyvolá se při procházení zásobníku dosáhne kódu, který se pokusil volat Assert. K tomu dochází, protože kód, který volal Assert , nebyl udělen oprávnění, i když se ho pokusil Assert .

Upozornění

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

Poznámky pro dědice

Tuto metodu nelze přepsat.

Platí pro

Viz také