TypeBuilder.IsSecurityCritical Свойство

Определение

Возвращает значение, указывающее, является ли текущий тип критически важным или безопасным для безопасности и поэтому может выполнять критически важные операции.

public:
 virtual property bool IsSecurityCritical { bool get(); };
public override bool IsSecurityCritical { get; }
member this.IsSecurityCritical : bool
Public Overrides ReadOnly Property IsSecurityCritical As Boolean

Значение свойства

true Значение , если текущий тип имеет критическое значение для безопасности или безопасности; false Значение , если это прозрачно.

Исключения

Текущий динамический тип не был создан путем вызова CreateType() метода.

Комментарии

IsSecurityCriticalСвойства IsSecuritySafeCriticalи IsSecurityTransparent свойства сообщают о уровне прозрачности типа, определяемом средой CLR. Сочетания этих свойств показаны в следующей таблице:

Уровень безопасности IsSecurityCritical IsSecuritySafeCritical IsSecurityTransparent
Критически важно true false false
Критически безопасное true true false
Transparent false false true

Использование этих свойств гораздо проще, чем изучение заметок безопасности сборки и его типов, проверки текущего уровня доверия и попытки дублировать правила среды выполнения.

Среда выполнения начинает оценивать уровни прозрачности на сборке. Например, если динамическая сборка является критически важной для безопасности, заметки о типах игнорируются, а все типы являются критически важными для безопасности.

По умолчанию динамическая сборка наследует прозрачность сборки, которая выдает ее. Этот параметр по умолчанию можно переопределить с помощью AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)перегрузки метода или AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) перегрузки метода и указания атрибутов безопасности. Вы не можете повысить уровень безопасности, выполнив это. То есть прозрачный код не может выдавать критически важный или безопасный для безопасности код. Атрибуты необходимо указать при создании динамической сборки или они не вступают в силу, пока сборка не будет сохранена на диске и перезагрузена.

Note

Наследование по умолчанию ограничено оценкой прозрачности среды выполнения. К динамической сборке атрибуты не применяются. Если вы хотите добавить атрибуты безопасности, их необходимо применить самостоятельно.

Для получения дополнительной информации об эмиссии отражения и прозрачности см. в разделе "Проблемы безопасности в эмиссии отражения". Сведения о прозрачности см. в разделе "Изменения безопасности".

Применяется к

См. также раздел