ICspInformation::GetDefaultSecurityDescriptor 方法 (certenroll.h)

GetDefaultSecurityDescriptor 方法检索默认的私钥安全描述符。

语法

HRESULT GetDefaultSecurityDescriptor(
  [in]  VARIANT_BOOL MachineContext,
  [out] BSTR         *pValue
);

参数

[in] MachineContext

一个VARIANT_BOOL变量,指示是检索计算机还是用户的安全描述符。 为计算机指定 VARIANT_TRUE ,为用户指定 VARIANT_FALSE

[out] pValue

指向包含安全描述符的 BSTR 变量的指针。

返回值

如果函数成功,该函数将返回 S_OK

如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码/值 说明
CERTSRV_E_PROPERTY_EMPTY
找不到属性值。
NTE_BAD_TYPE
加密提供程序不支持安全描述符。
NTE_NOT_FOUND
加密提供程序不支持安全描述符。
NTE_BAD_KEY_STATE
加密提供程序不支持安全描述符。

注解

若要使用安全描述符,必须调用 Microsoft 授权 API 附带的 ConvertStringSecurityDescriptorToSecurityDescriptor 函数,并指定 GetDefaultSecurityDescriptor 方法返回的字符串。 函数返回指向 SECURITY_DESCRIPTOR 结构的指针。

默认安全描述符用于按以下方式定义对计算机和用户的私钥的访问:

  • 默认情况下,只有本地管理员和在 LocalSystem 帐户下运行的服务可以访问与计算机帐户关联的私钥。
  • 当提供程序将用户的私钥存储在用户配置文件中的加密文件中时,它使用安全描述符来设置对文件的访问权限。

如果创建新的私钥,此方法将检索将与指定的 MachineContext 参数和当前提供程序关联的默认安全描述符。 可以使用默认描述符创建自定义描述符。 当与计算机上下文证书关联的私钥必须由在 LocalSystem 帐户以外的帐户下运行的服务使用时,通常会创建自定义描述符。

某些加密提供程序不支持安全描述符。 示例包括智能卡和硬件安全模块 (HSM) 提供商。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h
DLL CertEnroll.dll

另请参阅

ICspInformation