Share via


ICEnroll::createFilePKCS10 方法 (xenroll.h)

[此方法已不再可供 Windows Server 2008 和 Windows Vista 使用。]

createFilePKCS10 方法會建立base64編碼的 PKCS #10 憑證要求,並將它儲存在檔案中。 這個方法最初是在 ICEnroll 介面中定義。

這個方法與 createPKCS10 方法不同,只在將base64編碼的 PKCS #10 憑證要求儲存至 wszPKCS10FileName 參數所指定的檔案 (BSTR 格式) 。

語法

HRESULT createFilePKCS10(
  [in] BSTR DNName,
  [in] BSTR Usage,
  [in] BSTR wszPKCS10FileName
);

參數

[in] DNName

進行要求之實體的辨別名稱 (DN) 。 DNName 必須遵循 X.500 命名慣例。 例如 “CN=User, O=Microsoft”。 如果兩個字母前置詞不存在,可能會改為提供 對象標識碼 (OID) 。

[in] Usage

描述所產生憑證用途的 OID ,例如個人或商業 Authenticode 憑證或客戶端驗證。 您也可以指定以逗號分隔的多個 OID。

OID 會傳遞至 PKCS #10 要求。 控件不會檢查 OID。

[in] wszPKCS10FileName

BSTR 格式儲存 base64 編碼 PKCS #10 (的檔名,) 。 此檔案的內容可能會提交至 證書頒發機構單位 進行處理。

傳回值

VB

傳回值為 HRESULT值S_OK表示成功。

如果方法失敗,傳回值為 HRESULT ,表示錯誤。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

備註

根據預設,會使用 Microsoft 基底密碼編譯提供者,並建立唯一的簽章密鑰。

從文稿呼叫這個方法時,此方法會顯示使用者介面,詢問使用者是否允許建立憑證要求,以及使用者是否允許寫入文件系統的作業。

範例

BSTR bstrDN = NULL;
BSTR bstrOID = NULL;
BSTR bstrFileName = NULL;
ICEnroll4 * pEnroll = 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 **)&pEnroll);
if (FAILED(hr))
{
    printf("Failed CoCreateInstance - pEnroll [%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
if (NULL == bstrDN)
{
    printf("Memory allocation failed for bstrDN.\n");
    goto error;
}

// Generate the OID. For example, "1.3.6.1.4.1.311.2.1.21"
bstrOID = SysAllocString(TEXT("<OIDHERE>"));
if (NULL == bstrOID)
{
    printf("Memory allocation failed for bstrOID.\n");
    goto error;
}

// Specify the file name, for example, "myPKCS10.req"
bstrFileName = SysAllocString(TEXT("<FILENAMEHERE>"));
if (NULL == bstrFileName)
{
    printf("Memory allocation failed for bstrFileName.\n");
    goto error;
}

// Create the PKCS10 (stored in a file).
hr = pEnroll->createFilePKCS10( bstrDN, bstrOID, bstrFileName );
if (FAILED(hr))
{
   printf("Failed createFilePKCS10 - %x\n", hr);
   goto error;
}
else
    printf("Successfully created file containing PKCS10\n");

error:
// Clean up resources and so on.

if ( bstrFileName )
    SysFreeString( bstrFileName );

if ( bstrDN )
    SysFreeString( bstrDN );

if ( bstrOID )
    SysFreeString( bstrOID );

if ( pEnroll )
       pEnroll->Release();

CoUninitialize();

規格需求

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