ReflectionPermission Класс

Определение

Внимание!

Code Access Security is not supported or honored by the runtime.

Управляет доступом к закрытым типам и членам через API System.Reflection. Управляет некоторыми функциями API System.Reflection.Emit.

public ref class ReflectionPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
public sealed class ReflectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class ReflectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class ReflectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ReflectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type ReflectionPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type ReflectionPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type ReflectionPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ReflectionPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class ReflectionPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Наследование
ReflectionPermission
Атрибуты
Реализации

Комментарии

Без ReflectionPermissionэтого код может использовать отражение для доступа только к открытым членам объектов. Код с ReflectionPermission соответствующими ReflectionPermissionFlag флагами может получить доступ к protected объектам и private его членам.

Внимание!

Так как ReflectionPermission может предоставлять доступ к недоступным типам и членам, рекомендуется не предоставлять ReflectionPermission интернет-коду, за исключением флага ReflectionPermissionFlag.RestrictedMemberAccess . RestrictedMemberAccess разрешает доступ к неназначающим членам с ограничением, что набор разрешений для членов, не являющихся открытыми, должен быть равен или подмножество, набору кода, который обращается к неогласным членам.

Для некоторых функций отражения, таких как выдача символов отладки, требуется ReflectionPermission флаг ReflectionPermissionFlag.ReflectionEmit .

Дополнительные сведения см. в описании перечисления ReflectionPermissionFlag.

Конструкторы

ReflectionPermission(PermissionState)

Инициализирует новый экземпляр класса ReflectionPermission указанным состоянием разрешения: полностью ограниченное или неограниченное.

ReflectionPermission(ReflectionPermissionFlag)

Инициализирует новый экземпляр класса ReflectionPermission с заданным доступом.

Свойства

Flags

Получает или задает тип отражения, допустимого для текущего разрешения.

Методы

Assert()

Объявляет, что вызывающий код может получить доступ к ресурсу, защищенному требованием разрешения, через код, вызывающий этот метод, даже если вызывающим объектам выше в стеке вызовов не предоставлено разрешение на доступ к ресурсу. Assert() может вызвать проблемы системы безопасности.

(Унаследовано от CodeAccessPermission)
Copy()

Создает и возвращает идентичную копию текущего разрешения.

Demand()

Принудительно создает SecurityException во время выполнения, если все вызывающие методы, расположенные выше в стеке вызовов, не получили разрешения, указанного текущим экземпляром.

(Унаследовано от CodeAccessPermission)
Deny()
Является устаревшей.
Является устаревшей.

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром.

(Унаследовано от CodeAccessPermission)
Equals(Object)

Определяет, равен ли заданный объект CodeAccessPermission текущему объекту CodeAccessPermission.

(Унаследовано от CodeAccessPermission)
FromXml(SecurityElement)

Восстанавливает разрешение с указанным состоянием из кодировки XML.

GetHashCode()

Возвращает хэш-код для объекта CodeAccessPermission, который можно использовать в алгоритмах хэширования и структурах данных, например в хэш-таблице.

(Унаследовано от CodeAccessPermission)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Intersect(IPermission)

Создает и возвращает разрешение, представляющее собой пересечение текущего и указанного разрешений.

IsSubsetOf(IPermission)

Определяет, является ли текущее разрешение подмножеством указанного разрешения.

IsUnrestricted()

Возвращает значение, указывающее, является ли текущее разрешение неограниченным.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
PermitOnly()

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

(Унаследовано от CodeAccessPermission)
ToString()

Создает и возвращает строковое представление текущего объекта разрешения.

(Унаследовано от CodeAccessPermission)
ToXml()

Создает кодировку XML для разрешения и его текущего состояния.

Union(IPermission)

Создает разрешение, представляющее собой объединение текущего и указанного разрешений.

Явные реализации интерфейса

IPermission.Demand()

Создает исключение SecurityException во время выполнения, если требования безопасности не выполнены.

(Унаследовано от CodeAccessPermission)
IStackWalk.Assert()

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

(Унаследовано от CodeAccessPermission)
IStackWalk.Demand()

Определяет во время выполнения, было ли разрешение, указанное текущим объектом разрешений, предоставлено всем вызывающим методам в стеке вызовов.

(Унаследовано от CodeAccessPermission)
IStackWalk.Deny()

Вызывает ошибку каждого Demand() для текущего объекта, проходящего через вызывающий код.

(Унаследовано от CodeAccessPermission)
IStackWalk.PermitOnly()

Вызывает сбой всех Demand() для всех объектов, кроме текущего, проходящих через вызывающий код, даже если коду выше в стеке вызовов было предоставлено разрешение на доступ к другим ресурсам.

(Унаследовано от CodeAccessPermission)

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

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