Assemblies transparente de segurança não devem conter código crítico de segurança
TypeName |
SecurityTransparentAssembliesShouldNotContainSecurityCriticalCode |
CheckId |
CA2127 |
Category (Categoria) |
Microsoft.segurança |
Quebrando alterar |
Quebrando |
Causa
O código Critical não pode ocorrer em um assembly de 100 % transparente.
Descrição da regra
Esta regra analisa 100 % assemblies transparente para quaisquer anotações SecurityCritical no nível do método, campo e tipo.Essa regra é útil porque ele sinaliza código que existe em um assembly de 100 % transparente.Código em um conjunto de 100 % transparente aciona uma exceção de segurança ou um comportamento inesperado em time de execução.
The .NET Framework 2.0 introduziu um recurso chamado transparência.Métodos individuais, campos, interfaces, classes e tipos podem ser transparente ou crítico.
Código transparente não é permitido para elevar privilégios de segurança.Portanto, quaisquer permissões são concedidas ou exigidos dele são passados por meio do código automaticamente para o chamador ou AppDomain do host.Exemplos de 'elevações' incluem Asserts, LinkDemands, SuppressUnmanagedCode e código 'sem segurança'.
Um assembly pode ser 100 % transparente, 100 % críticos ou mista transparente/crítica.
Para marcar um assembly sistema autônomo 100 % transparente, adicione o atributo de nível de assembly:
[assembly:System.Security.SecurityTransparent]
Para marcar um assembly sistema autônomo 100 % críticos, adicione o atributo de nível de assembly:
[assembly:System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
Para marcar um assembly sistema autônomo misto transparente/crítica, adicione o atributo de nível de assembly:
[assembly:System.Security.SecurityCritical]
Código transparente não pode ocorrer em um assembly crítica 100 % e o código critical não pode ocorrer em um assembly de 100 % transparente.
Como corrigir violações
Para resolver o problema, marcar o assembly sistema autônomo misto transparente/crítica, ou remova o atributo SecurityCritical do código com sinalizadores.
Quando suprimir avisos
Elimina uma mensagem a partir dessa regra.