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 |
---|---|---|---|
Critical | true |
false |
false |
Критический в плане безопасности | true |
true |
false |
Прозрачный | 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>) и указав атрибуты безопасности. Таким образом нельзя повысить уровень безопасности. то есть прозрачный код не может выдавать критически важный для безопасности или безопасный код. Атрибуты должны указываться при создании динамической сборки или не вступают в силу до тех пор, пока сборка не будет сохранена на диске и перезагружена.
Примечание
Наследование по умолчанию ограничивается оценкой прозрачности среды выполнения. К динамической сборке атрибуты не применяются. Если вы хотите добавить атрибуты безопасности, необходимо применить их самостоятельно.
Дополнительные сведения об испускаемом отражении и прозрачности см. в разделе Проблемы безопасности в излучаемом отражении. Сведения о прозрачности см. в разделе Изменения в системе безопасности.
Применяется к
См. также раздел
- IsSecuritySafeCritical
- IsSecurityTransparent
- Вопросы безопасности в порождении отражения
- Соображения о безопасности для отражения
- Изменения системы безопасности в платформе .NET Framework версии 4.0
- Прозрачный с точки зрения безопасности код, уровень 1
- Прозрачный с точки зрения безопасности код, уровень 2