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 ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()

Implementazioni

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, in modo che i metodi più elevati nel metodo 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 è valida solo se il codice che chiama Assert supera il controllo di sicurezza per l'autorizzazione che sta asserendo.

La chiamata a Assert è valida 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 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 la procedura dettagliata dello stack 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 .

Attenzione

Poiché la chiamata Assert rimuove il requisito che a tutti i codici nella catena di chiamate deve essere concessa l'autorizzazione per accedere alla risorsa specificata, può aprire problemi di sicurezza se usati in modo errato 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