Метод ICEnroll4::createRequest (xenroll.h)
[Этот метод больше недоступен для использования в Windows Server 2008 и Windows Vista.]
Метод createRequest создает запрос на сертификат PKCS #10, PKCS #7 или полное управление сертификатами через CMS (CMC) и сохраняет его в строке. Этот метод был впервые определен в интерфейсе ICEnroll4 .
Синтаксис
HRESULT createRequest(
[in] LONG Flags,
[in] BSTR strDNName,
[in] BSTR Usage,
[out] BSTR *pstrRequest
);
Параметры
[in] Flags
Значение типа , указывающее тип создаваемого запроса сертификата. Это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
Полный CMC |
|
PKCS 10 |
|
PKCS 10 версии 2 |
|
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
Возвращаемое значение — это строка (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 |
Header | xenroll.h |
Библиотека | Uuid.lib |
DLL | Xenroll.dll |