KeyContainerPermissionFlags 枚举

定义

注意

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

指定允许的密钥容器访问类型。

此枚举支持其成员值的按位组合。

C#
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public enum KeyContainerPermissionFlags
C#
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum KeyContainerPermissionFlags
C#
public enum KeyContainerPermissionFlags
继承
KeyContainerPermissionFlags
属性

字段

名称 说明
AllFlags 13111

创建、解密、删除、打开密钥容器;导出、导入密钥;使用密钥给文件签名;查看并更改密钥容器的访问控制列表。

ChangeAcl 8192

更改密钥容器的访问控制列表 (ACL)。

Create 1

创建密钥容器。

创建密钥容器时还会在磁盘上创建一个文件。 请务必注意,创建的任何密钥容器都将在不再使用时删除,这一点非常重要。

Decrypt 512

解密密钥容器。

解密是一项特权操作,因为需要使用私钥。

Delete 4

删除密钥容器。

删除密钥容器可能导致拒绝服务攻击,因为删除密钥容器会阻止使用经密钥加密或签名的文件。 因此,删除是一项特权操作。

Export 32

从密钥容器导出密钥。

导出密钥的功能可能是有害的,因为它会破坏该密钥的唯一性。

Import 16

将密钥导入密钥容器。

类似于删除容器的功能,导入密钥的功能同样可能有害,因为向已命名的密钥容器导入密钥会替换已有的密钥。

NoFlags 0

不能访问密钥容器。

Open 2

打开一个密钥容器并使用公钥。

Open 不授予使用私钥对文件进行签名或解密的权限,但允许用户验证文件签名和加密文件。 只有密钥所有者可以使用私钥对这些文件进行解密。

Sign 256

使用密钥给文件签名。

对文件进行签名的功能可能是有害的,因为该功能可以让用户使用其他用户的密钥对文件进行签名。

ViewAcl 4096

查看密钥容器的访问控制列表 (ACL)。

示例

以下示例演示如何使用 KeyContainerPermissionFlags 枚举。

C#
// Create a KeyContainerPermission with the right 
// to open the key container.
KeyContainerPermission keyContainerPerm = new
     KeyContainerPermission(KeyContainerPermissionFlags.Open);

注解

注意

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

类的成员 KeyContainerPermissionAccessEntry 使用此枚举。

注意

其中许多标志可以具有强大的效果,并且应仅授予高度受信任的代码。

最强大的标志是 CreateDelete、、ImportExportSignDecryptAllFlags。 有关使用这些标志可能呈现的特定威胁,请参阅成员说明。

适用于

产品 版本 (已过时)
.NET (6, 7, 8, 9)
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1 (5, 6, 7, 8, 9)