ICspInformation::GetDefaultSecurityDescriptor 方法(certenroll.h)

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

Syntax

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

参数

[in] MachineContext

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

[out] pValue

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

返回值

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

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

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

注解

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

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

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

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

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

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows操作系统
Header certenroll.h
DLL CertEnroll.dll

另请参阅

ICspInformation