CodeAccessPermission.Assert Metodo

Definizione

Dichiara che il codice chiamante può accedere alla risorsa protetta da una richiesta di autorizzazione tramite il codice che chiama il metodo, anche se ai chiamanti più in alto nello stack non è stata concessa l'autorizzazione per accedere alla risorsa. L'uso di Assert() può creare problemi di sicurezza.

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 ()

Implementazioni

Attributi

Eccezioni

Il codice chiamante non ha Assertion.

-oppure- Esiste già un oggetto Assert() attivo per il fotogramma corrente.

Commenti

Lo stack di chiamate viene in genere rappresentato come in aumento verso il basso, in modo che i metodi più in alto nello stack di chiamate chiamino i metodi più in basso nello stack di chiamate. La chiamata a impedisce a un percorso dello stack proveniente da un livello inferiore nello stack di chiamate di procedere verso l'alto nello stack di chiamate oltre il Assert codice che chiama questo metodo. Pertanto, anche se i chiamanti più in alto nello stack di chiamate non hanno le autorizzazioni necessarie per accedere a una risorsa, possono comunque accedervi tramite il codice che chiama questo metodo sull'autorizzazione necessaria. Un'asserzione è efficace solo se il codice che chiama supera il controllo di sicurezza per Assert l'autorizzazione che sta asserindo.

La chiamata a Assert è effettiva fino a quando il codice chiamante non torna al chiamante. Solo uno Assert può essere attivo in un frame. Un tentativo di chiamare Assert quando esiste un oggetto attivo nel frame comporta Assert un'operazione SecurityException . Chiamare RevertAssert o per rimuovere un oggetto RevertAll Assert attivo.

Assert viene ignorato per un'autorizzazione non concessa perché una richiesta di tale autorizzazione non avrà esito positivo. Tuttavia, se il codice in basso nello stack di chiamate chiama per tale autorizzazione, viene generata un'eccezione quando l'analisi dello stack raggiunge il codice Demand che ha tentato di chiamare SecurityException Assert . Ciò si verifica perché al codice che ha chiamato Assert non è stata concessa l'autorizzazione, anche se ha tentato di eseguire questa Assert operazione.

Attenzione

Poiché la chiamata a rimuove il requisito per cui a tutto il codice nella catena di chiamate deve essere concessa l'autorizzazione per accedere alla risorsa specificata, può aprire problemi di sicurezza se usato in modo non corretto o Assert inappropriato. Pertanto, deve essere usato con estrema cautela.

Note per gli eredi

Non è possibile eseguire l'override di questo metodo.

Si applica a

Vedi anche