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 na oprávnění prostřednictvím kódu, který volá tuto metodu, i když volajícím vyššímu v zásobníku nebylo uděleno oprávnění pro přístup k prostředku. Použití Assert() může vytvořit 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í, takže metody vyšší v zásobníku volání volají níže v zásobníku volání. Volání Assert zabraňuje procházení zásobníku, který pochází z nižšího zásobníku volání, aby se za kód, který volá tuto metodu, zvedá zásobník volání. Proto i když volající vyšší v zásobníku volání nemají požadovaná oprávnění pro přístup k prostředku, stále k němu mají přístup prostřednictvím kódu, který volá tuto metodu s potřebným oprávněním. Kontrolní výraz je účinný pouze v případě, že kód, který volá Assert , projde kontrolou zabezpečení oprávnění, které uplatňuje.
Volání je účinné, Assert 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 v rámci existuje aktivní Assert , bude výsledkem SecurityException. Volání RevertAssert nebo RevertAll odebrání aktivního Assertobjektu
Assert je ignorováno, pokud není uděleno oprávnění, protože požadavek na toto oprávnění nebude úspěšný. Pokud však kód nižší na volání zásobníku volání Demand pro toto oprávnění, SecurityException vyvolá se při procházení zásobníku kódu, který se pokusil volat Assert. K tomu dochází, protože volaný Assert kód nemá udělené oprávnění, i když se o Assert to pokusil.
Upozornění
Vzhledem k tomu, že volání Assert odstraňuje 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 při nesprávném nebo nevhodném použití otevřít problémy se zabezpečením. Proto by měl být používán s velkou opatrností.
Poznámky pro dědice
Tuto metodu nelze přepsat.