ReflectionPermission 类

定义

注意

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

通过 System.Reflection API,控制对非公共类型和成员的访问。 控制 System.Reflection.Emit API 的一些功能。

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
属性
实现

注解

注意

代码访问安全性 (CAS) 已在所有版本的 .NET Framework 和 .NET 中弃用。 如果使用与 CAS 相关的 API,最新版本的 .NET 不会遵循 CAS 注释,并会生成错误。 开发人员应寻求用于完成安全任务的替代方法。

如果没有 ReflectionPermission,代码可以使用反射来仅访问 对象的公共成员。 具有 ReflectionPermission 和 相应 ReflectionPermissionFlag 标志的代码可以访问 protected 对象的 和 private 成员。

注意

由于 ReflectionPermission 可以提供对非公共类型和成员的访问权限,因此建议不要向 Internet 代码授予 ReflectionPermission 访问权限,但使用 ReflectionPermissionFlag.RestrictedMemberAccess 标志除外。 RestrictedMemberAccess 允许访问非公共成员,但限制是非公共成员的授予集必须等于访问非公共成员的代码的授予集或子集。

反射发出的某些功能(例如发出调试符号)需要使用 ReflectionPermissionReflectionPermissionFlag.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)
已过时.

创建一个权限,该权限是当前权限与指定权限的并集。

适用于

另请参阅