RegistryPermission 类

定义

注意

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

控制访问注册表变量的能力。 此类不能被继承。

public ref class RegistryPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
public sealed class RegistryPermission : 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 RegistryPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class RegistryPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class RegistryPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type RegistryPermission = 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 RegistryPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type RegistryPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type RegistryPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class RegistryPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
继承
RegistryPermission
属性
实现

注解

RegistryPermission 描述注册表变量上的受保护操作。 不应将注册表变量存储在某些内存位置,在这些位置,不具有 RegistryPermission 的代码可访问这些变量。 如果将注册表对象传递给不受信任的调用方,则可以滥用它。

允许的注册表访问类型由 RegistryPermissionAccess. 如果需要多个类型的访问,可以使用按位 OR 操作组合它们,如下面的代码示例所示。

注册表权限根据规范绝对路径定义;应始终使用规范路径名称进行检查。 键访问意味着访问它包含的所有值及其下的所有变量。

备注

在 .NET Framework 4 之前的 .NET Framework 版本中,可以使用该方法CodeAccessPermission.Deny防止受信任的代码无意访问系统资源。 Deny 现在已过时,并且对资源的访问现在仅由程序集的已授予权限集决定。 若要限制对文件的访问,必须在沙盒中运行部分受信任的代码,并将它的权限仅分配给允许该代码访问的资源。 有关在沙盒中运行应用程序的信息,请参阅 如何:在沙盒中运行部分受信任的代码

构造函数

RegistryPermission(PermissionState)

根据指定,使用完全受限制或不受限制的权限初始化 RegistryPermission 类的新实例。

RegistryPermission(RegistryPermissionAccess, AccessControlActions, String)

使用对指定注册表变量的指定访问权限和对注册表控制信息的指定访问权限,初始化 RegistryPermission 类的新实例。

RegistryPermission(RegistryPermissionAccess, String)

通过对指定注册表变量的指定访问权限初始化 RegistryPermission 类的新实例。

方法

AddPathList(RegistryPermissionAccess, AccessControlActions, String)

将指定注册表变量的访问权限添加到现有的权限状态中,同时指定注册表权限访问和访问控制操作。

AddPathList(RegistryPermissionAccess, String)

将指定的注册表变量的访问权限添加到现有的权限状态中。

Assert()

声明调用代码能够通过调用此方法的代码,访问受权限请求保护的资源,即使未对堆栈中处于较高位置的调用方授予访问该资源的权限。 使用 Assert() 会引起安全问题。

(继承自 CodeAccessPermission)
Copy()

创建并返回当前权限的相同副本。

Demand()

如果未对调用堆栈中处于较高位置的所有调用方授予当前实例所指定的权限,则在运行时强制 SecurityException

(继承自 CodeAccessPermission)
Deny()
已过时。
已过时。

防止处于调用堆栈较高位置的调用函数使用可以调用此方法来访问当前实例指定资源的代码。

(继承自 CodeAccessPermission)
Equals(Object)

确定指定的 CodeAccessPermission 对象是否等于当前的 CodeAccessPermission

(继承自 CodeAccessPermission)
FromXml(SecurityElement)

从 XML 编码重新构造具有指定状态的权限。

GetHashCode()

获取 CodeAccessPermission 对象的哈希代码,此代码适合在哈希算法和数据结构(例如哈希表)中使用。

(继承自 CodeAccessPermission)
GetPathList(RegistryPermissionAccess)

获取具有指定 RegistryPermissionAccess 的所有注册表变量的路径。

GetType()

获取当前实例的 Type

(继承自 Object)
Intersect(IPermission)

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

IsSubsetOf(IPermission)

确定当前权限是否为指定权限的子集。

IsUnrestricted()

返回一个值,该值指示当前权限是否不受限制。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
PermitOnly()

防止处于调用堆栈较高位置的调用函数使用此代码,此代码将调用此方法来访问除当前实例指定的资源以外的所有资源。

(继承自 CodeAccessPermission)
SetPathList(RegistryPermissionAccess, String)

将指定的注册表变量名称的新访问权限设置为现有的权限状态。

ToString()

创建并返回当前权限对象的字符串表示形式。

(继承自 CodeAccessPermission)
ToXml()

创建权限及其当前状态的 XML 编码。

Union(IPermission)

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

显式接口实现

IPermission.Demand()

如果不满足安全要求,则会在运行时引发 SecurityException

(继承自 CodeAccessPermission)
IStackWalk.Assert()

断言调用代码可以访问当前权限对象所标识的资源,即使尚未对堆栈中的高级调用方授予访问该资源的权限。

(继承自 CodeAccessPermission)
IStackWalk.Demand()

在运行时确定调用堆栈中的所有调用方是否已被授予当前权限对象所指定的权限。

(继承自 CodeAccessPermission)
IStackWalk.Deny()

将导致通过调用代码传递的当前对象的每个 Demand() 失败。

(继承自 CodeAccessPermission)
IStackWalk.PermitOnly()

导致所有对象的每个 Demand()(除了通过调用代码的当前那个)失败,即使调用堆栈中较高级别的代码已被授予访问其他资源的权限也是如此。

(继承自 CodeAccessPermission)

适用于

另请参阅