CodeAccessPermission.Assert Metodo

Definizione

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

public:
 virtual void Assert();
public void Assert();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()

Implementazioni

Eccezioni

Il codice chiamante non dispone di Assertion.

oppure

Esiste già un elemento attivo Assert() per il frame corrente.

Commenti

Lo stack di chiamate viene in genere rappresentato come in continua crescita, in modo che i metodi più alti nei metodi di chiamata dello stack di chiamate siano inferiori nello stack di chiamate. La chiamata Assert impedisce a una procedura dettagliata dello stack di origine inferiore nello stack di chiamate di procedere allo stack di chiamate oltre il codice che chiama questo metodo. Pertanto, anche se i chiamanti più in alto nello stack di chiamate non dispongono delle autorizzazioni necessarie per accedere a una risorsa, possono comunque accedervi tramite il codice che chiama questo metodo per l'autorizzazione necessaria. Un'asserzione è efficace solo se il codice che chiama Assert supera il controllo di sicurezza per l'autorizzazione che sta asserendo.

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

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

Caution

Poiché la chiamata Assert rimuove il requisito che tutto il codice nella catena di chiamate deve essere concesso per accedere alla risorsa specificata, può aprire problemi di sicurezza se usati in modo non corretto o inappropriato. Pertanto, deve essere usato con grande cautela.

Note per gli eredi

Non è possibile eseguire l'override di questo metodo.

Si applica a

Vedi anche