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()
{
}
}
}