Condividi tramite


CodeAccessPermission.Deny Metodo

Definizione

Attenzione

Questa API è ora deprecata.

Attenzione

Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di usare il codice che chiama questo metodo per accedere alla risorsa specificata dall'istanza corrente.

public:
 virtual void Deny();
[System.Obsolete]
public void Deny ();
public void Deny ();
[System.Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public void Deny ();
[<System.Obsolete>]
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
[<System.Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
Public Sub Deny ()

Implementazioni

Attributi

Eccezioni

Esiste già un oggetto Deny() attivo per il fotogramma corrente.

Commenti

Importante

Il Deny metodo deve essere usato solo per proteggere le risorse dall'accesso accidentale da codice completamente attendibile. Non deve essere usato per proteggere le risorse da uso improprio intenzionale da codice non attendibile. Ad esempio, se il metodo A rilascia un oggetto per un'autorizzazione Deny e quindi chiama il metodo , il metodo BBpuò eseguire l'override di eseguendo un Assertoggetto Deny . Il metodo chiamato è sempre superiore nello stack. Pertanto, se il metodo B tenta di accedere a una risorsa protetta, il sistema di sicurezza inizia a verificare la disponibilità di autorizzazioni perché il metodo B è il chiamante immediato e quindi scende lo stack per verificare che lo stack non Deny sia presente o PermitOnly inferiore nello stack. Il metodo B, che sta tentando di accedere alla risorsa, può arrestare immediatamente la procedura dello stack usando il Assert metodo . In tal caso, l'oggetto Deny posizionato nello stack per metodo A (il metodo chiamante) non viene mai individuato.

Questo metodo impedisce ai chiamanti più in alto nello stack di chiamate di accedere alla risorsa protetta tramite il codice che chiama questo metodo, anche se a tali chiamanti è stata concessa l'autorizzazione per accedervi. 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.

Deny può limitare la responsabilità del programmatore o impedire problemi di sicurezza accidentali perché consente di impedire l'uso del metodo che chiama Deny per accedere alla risorsa protetta dall'autorizzazione negata. Se un metodo chiama Deny per un'autorizzazione e se un Demand per tale autorizzazione viene richiamato da un chiamante inferiore nello stack di chiamate, tale controllo di sicurezza avrà esito negativo quando raggiunge .Deny

La chiamata a Deny è valida fino a quando il codice chiamante non torna al chiamante. Solo uno Deny può essere attivo in un frame. Un tentativo di chiamare Deny quando esiste un elemento attivo Deny nel frame restituisce un oggetto SecurityException. Chiamare RevertDeny o RevertAll per rimuovere un oggetto attivo Deny. Deny viene ignorato per un'autorizzazione non concessa perché una richiesta di tale autorizzazione non avrà esito positivo.

Note per gli eredi

Non è possibile eseguire l'override di questo metodo.

Si applica a