Sdílet prostřednictvím


CodeAccessPermission.Assert Metoda

Definice

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

Volající kód nemá Assertion.

-nebo-

Pro aktuální snímek již existuje aktivní Assert() .

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.

Platí pro

Viz také