ICertServerPolicy::GetRequestProperty 方法 (certif.h)

GetRequestProperty 方法會從要求擷取特定屬性。

語法

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

參數

[in] strPropertyName

指定要擷取的屬性名稱。 此參數可以設定為 name 屬性或要求屬性。

名稱屬性包含一組一律有效的憑證屬性,而且可以藉由呼叫此方法來擷取。 如需這些屬性的相關信息,請參閱 名稱屬性

要求屬性對要求而言是唯一的,並包含下列可能的值。

意義
RequestID
帶正負號的long
內部 requestID。
RawRequest
二進位
原始要求位元組。
RequestAttributes
字串
屬性字串 (可能會截斷) 。
RequestType
帶正負號的long
指出 PKCS #10 或 KeyGen 要求。 如需此屬性的詳細資訊,請參閱。
SubmittedWhen
Date/time
抵達時。
RequesterName
字串
格式為 「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)
程式庫 Certidl.lib
Dll Certcli.dll

另請參閱

ICertServerPolicy

ICertServerPolicy::SetContext

名稱屬性