ReflectionPermission Класс

Определение

Внимание!

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

Управляет доступом к закрытым типам и членам через API System.Reflection.Controls access to non-public types and members through the System.Reflection APIs. Управляет некоторыми функциями API System.Reflection.Emit.Controls some features of the System.Reflection.Emit APIs.

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 код может использовать отражение для доступа только к открытым членам объектов.Without ReflectionPermission, code can use reflection to access only the public members of objects. Код с ReflectionPermission и соответствующие ReflectionPermissionFlag Флаги могут обращаться protected к private членам объектов и.Code with ReflectionPermission and the appropriate ReflectionPermissionFlag flags can access the protected and private members of objects.

Внимание!

Поскольку ReflectionPermission может предоставлять доступ к неоткрытым типам и членам, рекомендуется не предоставлять ReflectionPermission код Интернета, кроме ReflectionPermissionFlag.RestrictedMemberAccess флага.Because ReflectionPermission can provide access to non-public types and members, we recommend that you do not grant ReflectionPermission to Internet code, except with the ReflectionPermissionFlag.RestrictedMemberAccess flag. RestrictedMemberAccess разрешает доступ к членам, не являющимся открытыми, с ограничением того, что набор предоставленных членов, не являющихся открытыми, должен быть равен или подмножеству, набору правил, который обращается к членам, не являющимся открытыми.RestrictedMemberAccess allows access to non-public members, with the restriction that the grant set of the non-public members must be equal to, or a subset of, the grant set of the code that accesses the non-public members.

Некоторые функции порождаемого отражения, такие как эмиссия отладочных символов, потребовались ReflectionPermission с ReflectionPermissionFlag.ReflectionEmit флагом.Certain features of reflection emit, such as emitting debug symbols, require ReflectionPermission with the ReflectionPermissionFlag.ReflectionEmit flag.

Дополнительные сведения см. в описании перечисления ReflectionPermissionFlag.For more information, see the ReflectionPermissionFlag enumeration.

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

ReflectionPermission(PermissionState)

Инициализирует новый экземпляр класса ReflectionPermission указанным состоянием разрешения: полностью ограниченное или неограниченное.Initializes a new instance of the ReflectionPermission class with either fully restricted or unrestricted permission as specified.

ReflectionPermission(ReflectionPermissionFlag)

Инициализирует новый экземпляр класса ReflectionPermission с заданным доступом.Initializes a new instance of the ReflectionPermission class with the specified access.

Свойства

Flags

Получает или задает тип отражения, допустимого для текущего разрешения.Gets or sets the type of reflection allowed for the current permission.

Методы

Assert()

Объявляет, что вызывающий код может получить доступ к ресурсу, защищенному требованием разрешения, через код, вызывающий этот метод, даже если вызывающим объектам выше в стеке вызовов не предоставлено разрешение на доступ к ресурсу.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Assert() может вызвать проблемы системы безопасности.Using Assert() can create security issues.

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

Создает и возвращает идентичную копию текущего разрешения.Creates and returns an identical copy of the current permission.

Demand()

Принудительно создает SecurityException во время выполнения, если все вызывающие методы, расположенные выше в стеке вызовов, не получили разрешения, указанного текущим экземпляром.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

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

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

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

Определяет, равен ли заданный объект CodeAccessPermission текущему объекту CodeAccessPermission.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

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

Восстанавливает разрешение с указанным состоянием из кодировки XML.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode()

Возвращает хэш-код для объекта CodeAccessPermission, который можно использовать в алгоритмах хэширования и структурах данных, например в хэш-таблице.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

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

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

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

Создает и возвращает разрешение, представляющее собой пересечение текущего и указанного разрешений.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission)

Определяет, является ли текущее разрешение подмножеством указанного разрешения.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted()

Возвращает значение, указывающее, является ли текущее разрешение неограниченным.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа ко всем ресурсам, за исключением ресурса, указанного текущим экземпляром.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

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

Создает и возвращает строковое представление текущего объекта разрешения.Creates and returns a string representation of the current permission object.

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

Создает кодировку XML для разрешения и его текущего состояния.Creates an XML encoding of the permission and its current state.

Union(IPermission)

Создает разрешение, представляющее собой объединение текущего и указанного разрешений.Creates a permission that is the union of the current permission and the specified permission.

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

IPermission.Demand()

Создает исключение SecurityException во время выполнения, если требования безопасности не выполнены.Throws a SecurityException at run time if the security requirement is not met.

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

Подтверждает, что вызывающий код может получить доступ к ресурсу, определяемому текущим объектом разрешения, даже если вызывающим объектам выше в стеке вызовов не предоставлено разрешение на доступ к ресурсу.Asserts that the calling code can access the resource identified by the current permission object, even if callers higher in the stack have not been granted permission to access the resource.

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

Определяет во время выполнения, было ли разрешение, указанное текущим объектом разрешений, предоставлено всем вызывающим методам в стеке вызовов.Determines at run time whether all callers in the call stack have been granted the permission specified by the current permission object.

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

Вызывает ошибку каждого Demand() для текущего объекта, проходящего через вызывающий код.Causes every Demand() for the current object that passes through the calling code to fail.

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

Вызывает сбой всех Demand() для всех объектов, кроме текущего, проходящих через вызывающий код, даже если коду выше в стеке вызовов было предоставлено разрешение на доступ к другим ресурсам.Causes every Demand() for all objects except the current one that pass through the calling code to fail, even if code higher in the call stack has been granted permission to access other resources.

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

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

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