다음을 통해 공유


CA2135: 수준 2 어셈블리는 LinkDemands를 포함해서는 안 됩니다.

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

범주

Microsoft.Security

변경 수준

주요 변경

원인

클래스 또는 클래스 멤버가 수준 2 보안을 사용하는 응용 프로그램에서 LinkDemand를 사용하고 있습니다.

규칙 설명

LinkDemands는 수준 2 보안 규칙 집합에서 사용되지 않습니다. LinkDemands를 JIT(Just-In-Time) 컴파일 타임에 보안을 적용하는 데 사용하는 대신, 메서드, 형식 및 SecurityCriticalAttribute 특성이 있는 필드를 표시하십시오.

위반 문제를 해결하는 방법

이 규칙의 위반 문제를 해결하려면 LinkDemand를 제거하고 SecurityCriticalAttribute 특성으로 형식 또는 멤버를 표시하십시오.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다.

예제

다음 예제에서 LinkDemand는 제거되어야 하며 이 메서드는 SecurityCriticalAttribute 특성이 표시되어 있습니다.

using System;
using System.Security;
using System.Security.Permissions;

namespace TransparencyWarningsDemo
{

    public class MethodsProtectedWithLinkDemandsClass
    {
        // CA2135 violation - the LinkDemand should be removed, and the method marked [SecurityCritical] instead
        [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
        public void ProtectedMethod()
        {
        }
    }
}