CodeAccessPermission.Assert Metoda

Definice

Deklaruje, že volající kód má přístup k prostředku, který je chráněn požadavkem oprávnění prostřednictvím kódu, který volá tuto metodu, a to i v případě, že by volajícím vyšším v zásobníku nebylo uděleno oprávnění pro přístup k prostředku.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Použití Assert() může vytvářet problémy se zabezpečením.Using Assert() can create security issues.

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 .The calling code does not have Assertion.

-nebo--or- Assert()Pro aktuální snímek již existuje aktivní.There is already an active Assert() for the current frame.

Poznámky

Zásobník volání je obvykle reprezentován při zvětšování, takže metody vyšší v metodách volání zásobníku volání jsou nižší v zásobníku volání.The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack. Volání Assert znemožňuje, aby procházení zásobníku vyvolalo nižší v zásobníku volání nad rámec kódu, který volá tuto metodu.Calling Assert prevents a stack walk originating lower in the call stack from proceeding up the call stack beyond the code that calls this method. Proto i v případě, že volající vyšší v zásobníku volání nemají potřebná oprávnění pro přístup k prostředku, mohou k němu přistupovat i přes kód, který tuto metodu volá v nezbytných oprávnění.Therefore, even if callers higher on the call stack do not have the requisite permissions to access a resource, they can still access it through the code that calls this method on the necessary permission. Kontrolní výraz je platný pouze v případě, že kód, který volá, Assert projde kontrolu zabezpečení pro oprávnění, které je vyhodnotit.An assertion is effective only if the code that calls Assert passes the security check for the permission that it is asserting.

Volání Assert je platné, dokud se volající kód nevrátí volajícímu.The call to Assert is effective until the calling code returns to its caller. AssertV rámci snímku může být aktivní pouze jeden.Only one Assert can be active on a frame. Pokus o volání, Assert když existuje aktivní Assert na snímku, má za následek SecurityException .An attempt to call Assert when an active Assert exists on the frame results in a SecurityException. Pokud RevertAssert RevertAll chcete odebrat aktivní, zavolejte nebo Assert .Call RevertAssert or RevertAll to remove an active Assert.

Assert ignoruje se u oprávnění, které nebylo uděleno, protože požadavek na toto oprávnění nebude úspěšný.Assert is ignored for a permission not granted because a demand for that permission will not succeed. Nicméně pokud kód nižší v volání zásobníku volání Demand pro toto oprávnění, SecurityException je vyvolána, pokud průchod zásobníku dosáhne kódu, který se pokusil zavolat Assert .However, if code lower on the call stack calls Demand for that permission, a SecurityException is thrown when the stack walk reaches the code that tried to call Assert. K tomu dochází, protože kód, který se volá, Assert nemá udělené oprávnění, i když se na Assert něj snažil.This happens because the code that called Assert has not been granted the permission, even though it tried to Assert it.

Upozornění

Vzhledem k tomu, že volání Assert odebere požadavek, aby byl veškerý kód v řetězu volání udělen oprávnění pro přístup k zadanému prostředku, může otevřít problémy zabezpečení, pokud je použit nesprávně nebo nevhodně.Because calling Assert removes the requirement that all code in the call chain must be granted permission to access the specified resource, it can open up security issues if used incorrectly or inappropriately. Proto byste měli použít s velkou opatrností.Therefore, it should be used with great caution.

Poznámky pro dědice

Tuto metodu nelze přepsat.You cannot override this method.

Platí pro

Viz také