Поделиться через


CA2135: сборки уровня 2 не должны содержать требования LinkDemand

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

Категория

Microsoft.Security

Критическое изменение

Критическое изменение

Причина

Класс или элемент класса использует LinkDemand в приложении, использующем уровень безопасности 2.

Описание правила

Требования LinkDemand являются устаревшими в наборе правил безопасности уровня 2.Вместо использования требования LinkDemand для обеспечения безопасности во время JIT-компиляции пометьте методы, типы и поля атрибутом 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()
        {
        }
    }
}