ICertServerPolicy::GetRequestProperty 方法 (certif.h)

GetRequestProperty 方法从请求中检索特定属性。

语法

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

参数

[in] strPropertyName

指定要检索的属性的名称。 此参数可以设置为 name 属性或请求属性。

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

请求属性对于请求是唯一的,并包含以下可能的值。

含义
RequestID
已签名的 long
内部 requestID。
RawRequest
二进制
原始请求字节。
RequestAttributes
String
) 可能会截断属性字符串 (。
RequestType
已签名的 long
指示 PKCS #10 或 KeyGen 请求。 有关此属性的详细信息,请参阅备注。
SubmittedWhen
日期/时间
到达时。
RequesterName
String
请求者的名称,格式为“DomainName\UserID”。
 

注意 还有一些其他请求属性无法由 GetRequestProperty 访问,因为直到策略模块处理完请求之后才会设置这些属性。此外,其他属性可能由特定的请求类型、请求扩展或请求标头中设置的命名属性设置。

[in] PropertyType

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

含义
PROPTYPE_LONG
有符号的长数据。
PROPTYPE_DATE
日期/时间。
PROPTYPE_BINARY
二进制数据。
PROPTYPE_STRING
Unicode 字符串数据。

[out] pvarPropertyValue

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

返回值

C++

如果该方法成功,该方法将返回S_OK,并且 pvarPropertyValue 参数包含请求属性。

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

VB

返回值为请求属性。

注解

在调用此方法之前,必须调用 SetContext 方法。 对 SetContext 的调用指定将哪个请求用作当前上下文。

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

RequestType 属性可以设置为以下值之一。

含义
CR_IN_PKCS 请求是 PKCS #7 续订或注册请求。
CR_IN-PKCS10 请求是 PKCS #10 请求。
CR_IN_KEYGEN 请求是 Netscape 格式) (Keygen 请求。
 

示例

BSTR      bstrPropName = NULL;
VARIANT   varProp;

VariantInit( &varProp );

bstrPropName = SysAllocString(L"RequestID");

// Retrieve the request property.
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->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

另请参阅

ICertServerPolicy

ICertServerPolicy::SetContext

名称属性