CA2131: Güvenlik kritik türleri tür eşdeğerliğine katılamaz

TürAdı

CriticalTypesMustNotParticipateInTypeEquivalence

CheckId

CA2131

Kategori

Microsoft.Security

Bozan Değişiklik

Bozan

Sebep

Türün eşdeğerliğine ve bir tür kendisine ya da bir üyeye ya da türün alanına katılan bir tür; SecurityCriticalAttribute özniteliğiyle işaretlemiştir.

Kural Tanımı

Bu kural, herhangi kritik türleri veya kritik yöntemleri içeren türleri veya tür eşdeğerliğine katılan alanları tetikler.CLR böyle bir türü algıladığında, çalışma zamanında TypeLoadException ile birlikte yüklemek başarısız olur.Tipik olarak bu kural, kullanıcılar tlbimpe güvenmek yerine el ile tür eşdeğerliği uyguladığında başlar ve derleyiciler tür eşdeğerliği yapar.

İhlallerin Düzeltilmesi

Bu kuralın bir ihlalini düzeltmek için SecurityCritical özniteliğini kaldırın.

Uyarılar Ne Zaman Bastırılmalı

Bu kuraldan bir uyarı gizlemeyin.

Örnek

Aşağıdaki örnekler, bir arabirim, bir yöntem ve bu kuralın ateşlenmesine neden olan bir alanı göstermektedir.

using System;
using System.Security;
using System.Runtime.InteropServices;

[assembly: SecurityRules(SecurityRuleSet.Level2)]
[assembly: AllowPartiallyTrustedCallers]

namespace TransparencyWarningsDemo
{

    // CA2131 error - critical type participating in equivilance
    [SecurityCritical]
    [TypeIdentifier("3a5b6203-2bf1-4f83-b5b4-1bdc334ad3ea", "ICriticalEquivilentInterface")]
    public interface ICriticalEquivilentInterface
    {
        void Method1();
    }

    [TypeIdentifier("3a5b6203-2bf1-4f83-b5b4-1bdc334ad3ea", "ITransparentEquivilentInterface")]
    public interface ITransparentEquivilentInterface
    {
        // CA2131 error - critical method in a type participating in equivilance
        [SecurityCritical]
        void CriticalMethod();
    }

    [SecurityCritical]
    [TypeIdentifier("3a5b6203-2bf1-4f83-b5b4-1bdc334ad3ea", "ICriticalEquivilentInterface")]
    public struct EquivilentStruct
    {
        // CA2131 error - critical field in a type participating in equivalence
        [SecurityCritical]
        public int CriticalField;
    }
}

Ayrıca bkz.

Kavramlar

Güvenliği Saydam Kod, 2. Düzey