ICertServerExit::GetRequestAttribute 方法 (certif.h)

GetRequestAttribute 方法从请求返回命名属性值

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

语法

HRESULT GetRequestAttribute(
  [in]  const BSTR strAttributeName,
  [out] BSTR       *pstrAttributeValue
);

参数

[in] strAttributeName

要检索的属性的名称。

[out] pstrAttributeValue

指向将包含属性值的 BSTR 值的指针。

返回值

C++

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

若要使用此方法,请创建 BSTR 类型的变量,将变量设置为 NULL,并将此变量的地址作为 pstrAttributeValue 传递。

使用完 BSTR 后,通过调用 SysFreeString 函数来释放它。

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

VB

返回值是表示属性值的字符串。

注解

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

以下请求属性对于 KEYGEN 样式请求是唯一的。

属性名称 类型 说明
挑战 字符串 请求附带的质询字符串。
ExpectedChallenge 字符串 如果质询字符串不正确,则服务器会将此请求属性的值设置为预期的质询,以便可以诊断失败。
 

示例

BSTR       bstrAttribValue = NULL;
HRESULT    hr;

// Get the request attribute.
// bstrAttribName is a BSTR assigned by EnumerateAttributes.
// Also, ICertServerExit::SetContext has already been
// called by pCertServerExit.
hr = pCertServerExit->GetRequestAttribute(bstrAttribName,
                                          &bstrAttribValue);

if (FAILED(hr))
{
    printf("Failed GetRequestAttribute [%x]\n", hr);
    goto error;
}
else
{

    // Successful call. Use bstrAttribValue as needed.
    // ...
}

// Done processing. Free BSTR.
if (NULL != bstrAttribValue)
    SysFreeString(bstrAttribValue);

要求

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

另请参阅

ICertServerExit

ICertServerExit::SetContext