Метод ICertAdmin::SetRequestAttributes (certadm.h)
Метод SetRequestAttributes задает атрибуты в указанном ожидающих запросе сертификата. Этот метод был впервые определен в интерфейсе ICertAdmin .
Для успешного выполнения этого метода запрос сертификата должен находиться в ожидании.
Синтаксис
HRESULT SetRequestAttributes(
[in] const BSTR strConfig,
[in] LONG RequestId,
[in] const BSTR strAttributes
);
Параметры
[in] strConfig
Представляет допустимую строку конфигурации для сервера центра сертификации (ЦС) в формате COMPUTERNAME\CANAME, где COMPUTERNAME — сетевое имя сервера служб сертификатов, а CANAME — общее имя центра сертификации, указанное при настройке служб сертификации. Дополнительные сведения об имени строки конфигурации см. в разделе ICertConfig.
[in] RequestId
Указывает идентификатор запроса, получающего атрибуты.
[in] strAttributes
Указывает данные атрибута. Каждый атрибут представляет собой пару строк имя-значение. Символ двоеточия разделяет имя и значение, а символ новой строки разделяет несколько пар "имя-значение", например:
C++ | AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2 |
VB | AttributeName1:AttributeValue1 & vbNewLine & AttributeName2:AttributeValue2 |
При анализе имен атрибутов службы сертификатов игнорируют пробелы, дефисы (знаки минуса) и регистр. Например, AttributeName1, Attribute Name1 и Attribute-name1 являются эквивалентными. Для значений атрибутов службы сертификатов игнорируют пробелы в начале и конце.
Возвращаемое значение
VB
Если метод завершается успешно, метод возвращает S_OK.Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Комментарии
Атрибуты , добавленные или обновленные путем вызова SetRequestAttributes , не изменяют начальную строку атрибута без обработки, связанную с запросом сертификата. Строка непараметрированного атрибута запроса на сертификат неизменяема после запроса сертификата (метод ICertRequest::Submit позволяет указывать атрибуты во время запроса сертификата).
Вы можете использовать оснастку MMC центра сертификации для отображения начальной строки атрибута необратимого запроса.
При просмотре проанализированных атрибутов вы также увидите изменения из-за вызовов SetRequestAttributes.
Просмотр проанализированных атрибутов
- Откройте оснастку MMC центра сертификации.
- Откройте папку Ожидающие запросы .
- Щелкните правой кнопкой мыши запрос, наведите указатель на пункт Все задачи и выберите пункт Просмотреть атрибуты и расширения.
В задачах администрирования используется DCOM. Код, вызывающий этот метод интерфейса, как определено в более ранней версии Certadm.h, будет выполняться на серверах под управлением Windows, если клиент и сервер работают под одной операционной системой Windows.
Примеры
BSTR bstrAttribs = NULL;
BSTR bstrCA = NULL;
long nReqID; // request ID
// Specify the attributes.
// For example, "AttName1:AttValue1\nAttName2:AttValue2".
bstrAttribs = SysAllocString(L"<ATTRIBUTESHERE>");
if (NULL == bstrAttribs)
{
printf("Memory allocation failed for bstrAttribs.\n");
goto error;
}
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Memory allocation failed for bstrCA.\n");
goto error;
}
// Request ID to receive the attributes.
nReqID = <REQUESTIDHERE>;
// Add these attributes to the certificate.
// pCertAdmin is a previously instantiated
// ICertAdmin object pointer.
hr = pCertAdmin->SetRequestAttributes( bstrCA,
nReqID,
bstrAttribs );
if (FAILED(hr))
printf("Failed SetRequestAttributes [%x]\n", hr);
else
printf("SetRequestAttributes succeeded\n");
// Done processing.
error:
if (bstrAttribs)
SysFreeString(bstrAttribs);
if (bstrCA)
SysFreeString(bstrCA);
// Free other resources.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certadm.h (включая Certsrv.h) |
Библиотека | Certidl.lib |
DLL | Certadm.dll |