CA2142: Il codice Transparent non deve essere protetto con LinkDemand
Articolo | Valore |
---|---|
ID regola | CA2142 |
Category | Microsoft.Security |
Modifica | Interruzione |
Causa
Un metodo trasparente richiede una SecurityAction o un'altra richiesta di sicurezza.
Nota
Questa regola è stata deprecata. Per altre informazioni, vedere Regole deprecate.
Descrizione regola
Questa regola viene attivata su metodi trasparenti che richiedono LinkDemands per accedervi. Il codice trasparente per la sicurezza non deve essere responsabile della verifica della sicurezza di un'operazione, pertanto non deve richiedere autorizzazioni. Poiché i metodi trasparenti dovrebbero essere neutrali per la sicurezza, non devono prendere alcuna decisione sulla sicurezza. Inoltre, codice critico sicuro, che esegue decisioni di sicurezza, non deve basarsi su codice trasparente per avere preso in precedenza una decisione di questo tipo.
Come correggere le violazioni
Per correggere una violazione di questa regola, rimuovere la richiesta di collegamento sul metodo trasparente o contrassegnare il metodo con SecuritySafeCriticalAttribute attributo se esegue controlli di sicurezza, ad esempio le richieste di sicurezza.
Quando eliminare gli avvisi
Non escludere un avviso da questa regola.
Esempio
Nell'esempio seguente la regola viene attivata sul metodo perché il metodo è trasparente ed è contrassegnato con un LinkDemand PermissionSet che contiene un oggetto SecurityAction.
using System;
using System.Security.Permissions;
namespace TransparencyWarningsDemo
{
public class TransparentMethodsProtectedWithLinkDemandsClass
{
// CA2142 violation - transparent code using a LinkDemand. This can be fixed by removing the LinkDemand
// from the method.
[PermissionSet(SecurityAction.LinkDemand, Unrestricted = true)]
public void TransparentMethod()
{
}
}
}
Non escludere un avviso da questa regola.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per