CodeAccessPermission.Assert Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Deklaruje, že volající kód má přístup k prostředku chráněnému požadavkem oprávnění prostřednictvím kódu, který tuto metodu volá, i když volajícím vyšší v zásobníku nebyla udělena oprávnění pro přístup k prostředku. Použití Assert() může vytvářet problémy se zabezpečením.
public:
virtual void Assert();
public void Assert();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()
Implementuje
Výjimky
Poznámky
Zásobník volání je obvykle reprezentován jako rostoucí dolů, 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 zásobník chodily z nižší části zásobníku volání, aby bylo možné pokračovat v zásobníku volání nad rámec kódu, který tuto metodu volá. Proto i když 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 , předá kontrolu zabezpečení pro oprávnění, která provádí.
Volání Assert je účinné, dokud se volající kód nevrátí do volajícího. V rámci rámce může být aktivní pouze jeden Assert . Výsledkem pokusu o volání Assert , pokud aktivní Assert existuje v rámci, má za SecurityExceptionnásledek . 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í zásobníku Demand volání pro toto oprávnění, je vyvolán, SecurityException když zásobník chůze 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 .
Caution
Vzhledem k tomu, že volání Assert odebere požadavek, že veškerý kód v řetězci volání musí být udělen oprávnění pro přístup k zadanému prostředku, může otevřít problémy se zabezpečením v případě nesprávného nebo nevhodného použití. Proto by měla být použita s velkou opatrností.
Poznámky pro dědice
Tuto metodu nelze přepsat.