IStackWalk Interfaccia

Definizione

Gestisce la procedura dettagliata dello stack che determina se tutti i chiamanti nello stack di chiamate dispongono delle autorizzazioni necessarie per accedere a una risorsa protetta.

public interface class IStackWalk
public interface IStackWalk
[System.Runtime.InteropServices.ComVisible(true)]
public interface IStackWalk
type IStackWalk = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IStackWalk = interface
Public Interface IStackWalk
Derivato
Attributi

Commenti

Caution

La sicurezza dall'accesso al codice è stata deprecata in tutte le versioni di .NET Framework e .NET. Le versioni recenti di .NET non rispettano le annotazioni CAS e generano errori se vengono usate API correlate a CAS. Gli sviluppatori devono cercare mezzi alternativi per eseguire attività di sicurezza.

Il codice parzialmente attendibile presenta sempre un rischio per la sicurezza. A volte può essere modificato per eseguire azioni per conto di codice dannoso che non dispone dell'autorizzazione per accedere a una risorsa. In questo modo, il codice dannoso può ottenere un accesso di sicurezza superiore a quello che deve essere consentito.

Common Language Runtime consente di proteggere il codice gestito da questi attacchi eseguendo una procedura dettagliata dello stack su tutte le chiamate. La procedura dettagliata dello stack richiede che tutto il codice nello stack di chiamate disponga dell'autorizzazione per accedere a una risorsa protetta. Poiché il codice che tenta l'attacco sarà sempre presente nello stack di chiamate, non sarà in grado di superare le proprie autorizzazioni di sicurezza.

Metodi

Nome Descrizione
Assert()

Afferma che il codice chiamante può accedere alla risorsa identificata dall'oggetto autorizzazione corrente, anche se ai chiamanti più in alto nello stack non è stata concessa l'autorizzazione per accedere alla risorsa.

Demand()

Determina in fase di esecuzione se a tutti i chiamanti nello stack di chiamate è stata concessa l'autorizzazione specificata dall'oggetto autorizzazione corrente.

Deny()

Determina l'esito negativo di ogni Demand() oggetto per l'oggetto corrente che passa attraverso il codice chiamante.

PermitOnly()

Determina l'esito negativo di ogni Demand() oggetto per tutti gli oggetti ad eccezione di quello corrente che passa attraverso il codice chiamante, anche se a un livello superiore del codice nello stack di chiamate è stata concessa l'autorizzazione per accedere ad altre risorse.

Si applica a