Поделиться через


Метод ICertGetConfig::GetConfig (certcli.h)

Метод GetConfig извлекает строку конфигурации для сервера служб сертификатов .

Строка конфигурации — это имя сервера и имя центра сертификации (ЦС), разделенные обратной косой чертой (\); Например: Имя_\сервера CAName. Эту строку конфигурации можно использовать для однозначной ссылки на конкретный сервер служб сертификатов. Дополнительные сведения см. в подразделе "Примечания".

Синтаксис

HRESULT GetConfig(
  [in]  LONG Flags,
  [out] BSTR *pstrOut
);

Параметры

[in] Flags

Значение, указывающее используемый ЦС. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
CC_DEFAULTCONFIG
0x00000000
Извлекает ЦС по умолчанию.
CC_FIRSTCONFIG
0x00000002
Возвращает первый ЦС.
CC_LOCALACTIVECONFIG
0x00000004
Извлекает локальный ЦС, если он запущен.
CC_LOCALCONFIG
0x00000003
Извлекает локальный ЦС.
CC_UIPICKCONFIG
0x00000001
Отображает пользовательский интерфейс, позволяющий пользователю выбрать ЦС.
CC_UIPICKCONFIGSKIPLOCALCA
0x00000005
Отображает пользовательский интерфейс, позволяющий пользователю выбрать ЦС. Пользовательский интерфейс исключает любой локальный ЦС. Это исключение полезно при продлении сертификата подчиненного ЦС, когда запрос на сертификат подчиненного ЦС отправляется в ЦС, отличный от текущего ЦС.

[out] pstrOut

Указатель на BSTR , содержащий конфигурацию. Завершив использование конфигурации, вызовите функцию SysFreeString , чтобы освободить pbstrOut.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет S_OK.

Если метод завершается ошибкой, возвращается значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Комментарии

Часть имени центра сертификации (ЦС) строки конфигурации, возвращаемой этой функцией, — это точный текст, введенный во время установки служб сертификатов. Обратите внимание, что этот текст может отличаться от формы имени ЦС в именах файлов (например, в списке отзыва сертификатов) или в разделах реестра. Это связано с тем, что имена файлов и разделы реестра используют дезинфицированную версию имени ЦС.

Процесс очистки имени ЦС необходим для удаления символов, которые являются недопустимыми для имен файлов, имен разделов реестра или значений различающегося имени или недопустимыми по причинам, характерным для служб сертификатов. В процессе очистки любой недопустимый символ в общем имени преобразуется в представление из пяти символов в формате !xxxx, где восклицательный знак (!) используется в качестве escape-символа, а xxxx представляет четыре шестнадцатеричные цифры, которые однозначно идентифицируют преобразуемый символ.

Например, знак номера (#) не допускается в различающихся именах в службе каталогов Active Directory. Если во время установки # введено имя ЦС— YourName, то с помощью дезинтемпированного ЦС будет !0023YourName.

Следующие символы, если они введены для общего имени ЦС во время установки, преобразуются в !Формат xxxx во время процесса очистки. Этот список подлежит изменению.

Знак Значение в формате !xxxx
< !003c
> !003e
" !0022
/ !002f
\ !005c
: !003a
| !007c
? !003f
* !002a
# !0023
, !002c
+ !002b
; !003b
! !0021
 

Все непечатаемые символы и все символы Юникода, не являющиеся семи битами, также преобразуются в !Формат xxxx.

Санируемое короткое имя создается, если это имя слишком длинное для относительного различающегося имени служб каталога (RDN) из 64 символов. Очищенное короткое имя состоит из усеченного и добавленного хэша полного дезинфицированного имени. При очистке короткого имени некоторые из 64 символов содержат суффиксы списка отзыва сертификатов (CRL), например (123).

Часть имени ЦС строки конфигурации, возвращаемой этим методом, представляет собой исходный текст, введенный во время установки. Обратите внимание, что методы служб сертификатов, требующие имени ЦС в качестве параметра, принимают первоначально введенное имя ЦС. Например, для имени # ЦС YourName
Метод ICertView2::OpenConnection принимает #YourName в качестве части ЦС параметра.

Требования

Требование Значение
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header certcli.h (включая Certsrv.h)
Библиотека Certidl.lib
DLL Certcli.dll

См. также раздел

ICertConfig2::GetConfig

ICertGetConfig

ICertView2::OpenConnection