ICertServerPolicy::GetCertificateExtension 方法 (certif.h)

GetCertificateExtension 方法會擷取特定的憑證延伸模組。

語法

HRESULT GetCertificateExtension(
  [in]  const BSTR strExtensionName,
  [in]  LONG       Type,
  [out] VARIANT    *pvarValue
);

參數

[in] strExtensionName

包含延伸模組名稱的字串。

[in] Type

指定擴充功能的類型。 類型可以是下列其中一個值。

意義
PROPTYPE_LONG
帶正負號的長數據
PROPTYPE_DATE
Date/time
PROPTYPE_BINARY
擴充值會依原樣擷取,並視需要編碼 ASN.1。
PROPTYPE_STRING
擴展名值為 ASN.1,編碼為 IA5 字串。

[out] pvarValue

VARIANT 的指標,可接收要求的延伸模組值。

傳回值

C++

如果方法成功,方法會傳回S_OK,而 pvarValue 參數則包含擴充值。

如果方法失敗,它會傳回 HRESULT 值,指出錯誤。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

VB

傳回值是要求的擴充值。

備註

呼叫此方法之前,必須先呼叫 SetContext 方法。 對 SetContext 的呼叫會指定使用哪個要求做為目前內容。

憑證延伸模組與憑證屬性不同。 屬性是附加至要求的泛型數據。 其中有些屬性會編碼為憑證 (例如: BeginDate) ,而其他屬性則只是用來標記佇列和記錄中的要求。 未停用的延伸模組會編碼為憑證。 延伸模組一律會以 物件標識符標示,而且一律具有關鍵/非關鍵旗標。

範例

VARIANT    varExt;
HRESULT    hr;

VariantInit(&varExt);
// Get the Extension value.
// bstrExtName is BSTR assigned by EnumerateExtensions.
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtension(bstrExtName,
                                                PROPTYPE_BINARY,
                                                &varExt);

if (FAILED(hr))
{
    printf("Failed GetCertificateExtension [%x]\n", hr);
    goto error;
}
// Successful call; use the value in varExt as needed.
// ...

// When done, clear the Variant
VariantClear(&varExt);

規格需求

需求
最低支援的用戶端 都不支援
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 certif.h (包括 Certsrv.h)
程式庫 Certidl.lib
Dll Certcli.dll

另請參閱

ICertServerPolicy

ICertServerPolicy::GetCertificateExtensionFlags

ICertServerPolicy::SetContext