KeyContainerPermissionFlags 枚举

定义

注意

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

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

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

public enum class KeyContainerPermissionFlags
[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
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum KeyContainerPermissionFlags
public enum KeyContainerPermissionFlags
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type KeyContainerPermissionFlags = 
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type KeyContainerPermissionFlags = 
type KeyContainerPermissionFlags = 
Public Enum KeyContainerPermissionFlags
继承
KeyContainerPermissionFlags
属性

字段

名称 说明
NoFlags 0

无法访问密钥容器。

Create 1

创建密钥容器。

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

Open 2

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

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

Delete 4

删除密钥容器。

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

Import 16

将密钥导入密钥容器。

导入密钥的能力与删除容器的能力一样有害,因为将密钥导入命名密钥容器会替换现有密钥。

Export 32

从密钥容器导出密钥。

导出密钥的能力可能有害,因为它消除了密钥的排他性。

Sign 256

使用密钥对文件进行签名。

对文件进行签名的能力可能有害,因为它允许用户使用其他用户的密钥对文件进行签名。

Decrypt 512

解密密钥容器。

解密是特权操作,因为它使用私钥。

ViewAcl 4096

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

ChangeAcl 8192

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

AllFlags 13111

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

注解

Caution

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

此枚举由类的成员 KeyContainerPermissionAccessEntry 使用。

Caution

其中许多标志可以产生强大的效果,只应授予高度受信任的代码。

最强大的旗帜是Create,,DeleteImportExportSign,和DecryptAllFlags。 有关使用这些标志的特定威胁,请参阅成员说明。

适用于