Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Метод Submit отправляет запрос на сервер служб сертификатов.
Если полученное состояние ликвидации CR_DISP_ISSUED, можно получить выданный сертификат, вызвав метод ICertRequest3::GetCertificate .
Синтаксис
HRESULT Submit(
[in] LONG Flags,
[in] const BSTR strRequest,
[in] const BSTR strAttributes,
[in] const BSTR strConfig,
[out, retval] LONG *pDisposition
);
Параметры
[in] Flags
Указывает формат запроса, тип запроса и то, зашифрован ли запрос. Один из следующих флагов атрибутов формата можно использовать для указания способа кодирования запроса.
Для указания типа запроса можно использовать один из следующих флагов значений формата.
| Значение | Значение |
|---|---|
|
Возвращает запрос, который можно отправить в ЦС. Задача заключается в полном запросе управления сертификатами через CMS (CMC). Если этот флаг включен, вызов метода GetFullResponseProperty с флагом FR_PROP_FULLRESPONSE возвращает ответ CMC, содержащий запрос аттестации ключа. |
|
Вызов — это ответ на вызов. RequestId должен передаваться в параметре strAttributes , а ответ на запрос — в параметре strRequest . Этот флаг должен быть включен, когда приложению необходимо отправить обратно расшифрованный запрос в ЦС. Затем можно вызвать метод GetFullResponseProperty , чтобы получить выданный сертификат конечной сущности. |
|
Запрос управления сертификатами через CMS (CMC). |
|
Попробуйте все форматы CR_IN_CMC, CR_IN_KEYGEN, CR_IN_PKCS7 или CR_IN_PKCS10. |
|
Запрос Keygen (формат Netscape). |
|
Запрос PKCS No 7 (агент по продлению или регистрации). |
|
Запрос PKCS 10. |
|
Передай сообщения с помощью RPC вместо DCOM. |
|
Возвращает полный ответ CMC. |
|
Включите текущие списки отзыва сертификатов. |
|
Используйте контекст компьютера службы ключей. |
|
Указывает, что сообщение запрашивается от имени другого отправителя.
Если центр сертификации (ЦС) не настроен для "продлить от имени", ЦС отклоняет запрос. Дополнительные сведения о включении функции "продление от имени" в ЦС см. в разделе Настройка веб-службы регистрации сертификатов для режима "Только продление". Запрос должен быть запросом на продление, а сертификат подписи должен использовать тот же шаблон, что и запрос. Кроме того, запрос будет выполнен, только если выполняется одно из следующих условий:
|
|
Не включайте в данные запроса, которые идентифицируют клиента.
Windows Server 2008 и Windows Server 2003: Этот флаг не поддерживается. |
|
Указывает, что подключение DCOM к серверу установлено, но запрос не отправляется. |
[in] strRequest
Указатель на строку, содержащую запрос сертификата. Если CR_IN_BASE64 или CR_IN_BASE64HEADER указано в разделе Флаги, строка strRequest должна быть строкой Юникода.
[in] strAttributes
Указатель на строку, содержащую необязательные дополнительные атрибуты для запроса. Каждый атрибут представляет собой пару строк имя-значение. Символ двоеточия разделяет имя и значение, а символ новой строки разделяет несколько пар "имя-значение", например:
| C++ | "AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2" |
| VB | "AttributeName1:AttributeValue1" & vbNewLine & "AttributeName2:AttributeValue2" |
[in] strConfig
Представляет допустимую строку конфигурации для сервера служб сертификатов. Строка может быть URL-адресом HTTPS для сервера регистрации или в формате Имя_\компьютера CAName, где ComputerName — сетевое имя сервера, а CAName — общее имя центра сертификации, указанное при настройке служб сертификатов. Дополнительные сведения об имени строки конфигурации см. в разделе ICertConfig.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: URL-адрес HTTPS не поддерживается в качестве входных данных.
[out, retval] pDisposition
Указатель на значение ликвидации запроса.
Возвращаемое значение
C++
Если метод завершается успешно, метод возвращает S_OK.После успешного выполнения этой функции параметру *pDisposition присваивается одно из значений в следующей таблице.
Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
VB
Возвращаемое значение указывает ликвидацию запроса. Ликвидация является одним из следующих значений.| Код возврата | Описание |
|---|---|
|
Запрос отклонен |
|
Не удалось выполнить запрос |
|
Запрос не завершен |
|
Выданный сертификат |
|
Сертификат, выданный отдельно |
|
Запрос, принятый при отправке |
Комментарии
Если вы читаете запрос формата BASE64 из файла, убедитесь, что файл находится в Юникоде, или преобразуйте его из ASCII в Юникод перед отправкой запроса с помощью этого метода.
Примеры
// The pointer to the interface object.
ICertRequest * pCertRequest = NULL;
// The variable for the computer\CAName.
BSTR bstrCA = NULL;
// The variable for the request.
BSTR bstrRequest = NULL;
// The variable for the attributes.
BSTR bstrAttribs = NULL;
// The variable for the disposition code.
long nDisp;
HRESULT hr;
// Initialize COM.
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
// Check status.
if (FAILED(hr))
{
printf("Failed CoInitializeEx [%x]\n", hr);
goto error;
}
// Instantiate the CertConfig object.
hr = CoCreateInstance(CLSID_CCertRequest,
NULL,
CLSCTX_INPROC_SERVER,
IID_ICertRequest,
(void **)&pCertRequest);
if (FAILED(hr))
{
printf("Failed CoCreateInstance pCertRequest [%x]\n", hr);
goto error;
}
// Specify the certification authority.
// Note: In C++, produce one backslash (\) by using two.
bstrCA = SysAllocString(L"server01\\myCAName");
// Create the request (not shown), and assign it to bstrRequest,
// for example, use ICEnroll::createPKCS10.
// Generate the attributes. In this case, no attributes
// are specified.
bstrAttribs = SysAllocString(L"");
// Submit the request.
hr = pCertRequest->Submit(CR_IN_BASE64 | CR_IN_PKCS10,
bstrRequest,
bstrAttribs,
bstrCA,
&nDisp );
if (FAILED(hr))
{
printf("Failed Submit [%x]\n", hr);
goto error;
}
else
{
// Use the disposition value as needed.
}
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrRequest)
SysFreeString(bstrRequest);
if (NULL != bstrAttribs)
SysFreeString(bstrAttribs);
// Clean up object resources.
if (NULL != pCertRequest)
pCertRequest->Release();
// Free COM resources.
CoUninitialize();
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows XP [только классические приложения] |
| Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
| Целевая платформа | Windows |
| Header | certcli.h (включая Certsrv.h) |
| Библиотека | Certidl.lib |
| DLL | Certcli.dll |