ICEnroll4::createRequest 方法 (xenroll.h)

[從 Windows Server 2008 和 Windows Vista 起,這個方法已不再可供使用。]

createRequest 方法會透過 CMS (CMC 建立 PKCS #10、PKCS #7 或完整憑證管理,) 格式憑證要求,並將其儲存在字元串中。 這個方法最初是在 ICEnroll4 介面中定義。

語法

HRESULT createRequest(
  [in]  LONG Flags,
  [in]  BSTR strDNName,
  [in]  BSTR Usage,
  [out] BSTR *pstrRequest
);

參數

[in] Flags

值,指定要建立的憑證要求類型。 這可以是下列其中一個值。

意義
XECR_CMC
完整 CMC
XECR_PKCS10_V1_5
PKCS 10
XECR_PKCS10_V2_0
PKCS 10 第 2 版
XECR_PKCS7
PKCS 7

[in] strDNName

此參數可以是 NULL;否則,此參數會指定進行要求之實體的辨別名稱 (DN) 。 DN 名稱必須遵循 X.500 命名慣例,例如 “CN=User, O=Microsoft”。 如果兩個字母前置詞不存在,可以改為提供 OID。

[in] Usage

對象 標識碼 (OID) ,描述所產生憑證的目的,例如個人或商業 Authenticode 憑證或客戶端驗證。 您也可以指定以逗號分隔的多個 OID。

[out] pstrRequest

接收要求的 BSTR (BASE64_HEADER 格式) 指標。 當您完成 使用 BSTR 時,請呼叫 SysFreeString 函式來釋放它。

傳回值

C++

如果方法成功,方法會傳回S_OK。

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

VB

傳回值是 包含要求的 String (BASE64_HEADER 格式) 。

備註

從腳本呼叫這個方法時,此方法會顯示使用者介面,詢問使用者是否允許建立憑證要求。 如果指定了 .pvk 或 .spc 檔案,此方法會顯示使用者介面,詢問使用者是否允許對文件系統進行寫入作業。

範例

BSTR bstrDN = NULL;
BSTR bstrReq = NULL;
ICEnroll4 * pEnroll4 = NULL;
HRESULT hr;

hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
if (FAILED(hr))
{
    printf("Failed CoInitializeEx - %x\n", hr);
    goto error;
}

hr = CoCreateInstance( __uuidof(CEnroll),
                       NULL,
                       CLSCTX_INPROC_SERVER,
                       __uuidof(ICEnroll4),
                       (void **)&pEnroll4);
if (FAILED(hr))
{
    printf("Failed CoCreateInstance - pEnroll4 [%x]\n", hr);
    goto error;
}

// generate the DN for the cert request
bstrDN = SysAllocString( TEXT("CN=Your Name")   // common name
                         TEXT(",OU=Your Unit")  // org unit
                         TEXT(",O=Your Org")    // organization
                         TEXT(",L=Your City")   // locality
                         TEXT(",S=Your State")  // state
                         TEXT(",C=Your Country") );  // country/region

// create the CMC request
hr = pEnroll4->createRequest( XECR_CMC,
                              bstrDN,
                              NULL,
                              &bstrReq );
if (FAILED(hr))
{
        printf("Failed createRequest - pEnroll4 [%x]\n", hr);
        goto error;
}
else
    // do something with the CMC (bstrReq);

error:

//clean up resources, and so on
if ( bstrDN )
    SysFreeString( bstrDN );
if ( bstrReq )
    SysFreeString( bstrReq );
if ( pEnroll4 )
    pEnroll4->Release();

CoUninitialize();

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 xenroll.h
程式庫 Uuid.lib
Dll Xenroll.dll