ICertServerExit::GetRequestProperty 方法 (certif.h)

GetRequestProperty 方法从请求返回命名属性。

请注意,请求用于保存请求的所有关联状态,以及不是证书一部分的最终授予证书。 因此,吊销时间和处置数据等数据保存在请求数据对象中。

语法

HRESULT GetRequestProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

参数

[in] strPropertyName

指定要检索的属性。 有一组常用证书属性(称为名称属性),这些属性始终有效,可以通过调用此方法进行检索。 有关这些属性的信息,请参阅 Name Properties

证书请求 有效的其他属性包括请求属性。

注意仅当使用 PKCS #10 证书请求或其他包含编码使用者名称信息的支持请求格式请求证书时,GetRequestProperty 才能访问请求的 DistinguishedNameRawName 属性。 请注意,KeyGen 请求不包含编码的使用者名称信息。
 

以下属性对于请求是唯一的,可以使用 GetRequestProperty 方法进行访问。

请求属性 含义
Disposition
已签名的 long
当前请求处置
DispositionMessage
String
信息性处置消息
RawCACertificate
二进制
颁发 证书颁发机构的证书
RawRequest
二进制
原始请求字节数
RequestAttributes
String
属性字符串 (可以截断)
RequesterName
String
请求者的名称,格式为“DomainName\UserID
RequestID
已签名的 long
内部 requestID
RequestType
已签名的 long
指示 PKCS #10 或 KeyGen 请求
ResolvedWhen
日期/时间
解决时
StatusCode
已签名的 long
上次操作的 Windows 错误
SubmittedWhen
日期/时间
到达时
 

RequestType 属性将是以下值之一。

含义
CR_IN_PKCS7
PKCS #7 续订或注册请求
CR_IN_PKCS10
PKCS #10 请求
CR_IN_KEYGEN
(Netscape 格式) 的 Keygen 请求
 

此外,其他属性可能由特定的请求类型、请求扩展或请求标头中设置的命名属性设置。

[in] PropertyType

指定属性类型。 类型可以是以下类型之一。

含义
PROPTYPE_LONG
有符号的长数据
PROPTYPE_DATE
日期/时间
PROPTYPE_BINARY
Binary data
PROPTYPE_STRING
Unicode 字符串数据

[out] pvarPropertyValue

指向将包含请求属性类型的 VARIANT 的指针。

返回值

C++

如果该方法成功,该方法将返回S_OK,并且 *pvarPropertyValue 设置为包含请求属性值的 VARIANT

如果方法失败,它将返回指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 常见 HRESULT 值

VB

返回值为请求属性值。

注解

在使用此方法之前,必须调用 ICertServerExit::SetContext

示例

BSTR      bstrPropName = NULL;
VARIANT   varProp;

VariantInit( &varProp );

bstrPropName = SysAllocString(L"RequestID");

// Retrieve the request property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetRequestProperty( bstrPropName,
                                          PROPTYPE_LONG,
                                          &varProp );
if (FAILED(hr))
{
    printf("Failed GetRequestProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
VariantClear( &varProp );
if ( NULL != bstrPropName )
    SysFreeString( bstrPropName );

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certif.h (包括 Certsrv.h)
Library Certidl.lib
DLL Certcli.dll

另请参阅

ICertServerExit

ICertServerExit::SetContext

名称属性