Интерфейс ICertExit (certexit.h)
Интерфейс ICertExit обеспечивает обмен данными между сервером служб сертификатов и модулем выхода.
- Инициализируйте сервер служб сертификатов.
- Уведомите модуль выхода о событии, таком как выдача сертификата, выдача списка отзыва сертификатов (CRL) или завершение работы сервера.
- Получение описания модуля выхода.
ICertExit определяется в Certexit.h. Однако при создании программы используйте Certsrv.h в качестве включаемого файла.
Интерфейсы служб сертификатов поддерживают как модели потоков с подразделениями, так и с бесплатными потоками. Для повышения пропускной способности рекомендуется использовать свободные потоки.
Наследование
Интерфейс ICertExit наследуется от интерфейса IDispatch . ICertExit также имеет следующие типы членов:
Методы
Интерфейс ICertExit содержит следующие методы.
ICertExit::GetDescription Возвращает понятное описание модуля выхода и его функции. |
ICertExit::Initialize Вызывается подсистемой сервера при инициализации. |
ICertExit::Notify Вызывается подсистемой сервера для уведомления модуля выхода о возникновении события. |
Комментарии
Разработчики ICertExit также должны реализовать ICertManageModule. Кроме того, ProgID для класса, реализующего ICertExit , должен соответствовать соглашению об именовании. В частности, Идентификатор ProgID должен иметь следующий вид:
"MyApp. Выход"
Где MyApp — это описатель, идентифицирующий приложение. Например, в C++ следующий код можно использовать в макросе DECLARE_REGISTRY класса (CMyCertExitModule), который реализует ICertExit.
DECLARE_REGISTRY(
CMyCertExitModule,
L"MyCode.Exit.1",
L"MyCode.Exit",
IDS_CERTEXITMODULE_DESC,
THREADFLAGS_BOTH)
В предыдущем примере значение IDS_CERTEXITMODULE_DESC — это идентификатор конкретного приложения в файле ресурсов (RC) для строки, описывающей класс .
Строковые константы, определенные в Certmod.h, можно использовать для упрощения в соответствии с соглашением об именовании.
Константа | Значение |
---|---|
wszCERTEXITMODULE_POSTFIX | TEXT(". Выход") |
На сервере служб сертификатов одновременно может быть зарегистрировано не более одного модуля выхода Visual Basic Scripting Edition. Если зарегистрировано несколько модулей выхода Visual Basic Scripting Edition, оснастка MMC центра сертификации, приложение служб сертификатов или программа командной строки certutil могут привести к ошибкам. Обратите внимание, что среда разработки Visual Basic Scripting Edition автоматически регистрирует библиотеку DLL при ее успешной сборке. В результате вы можете столкнуться с такой ситуацией, когда один модуль выхода visual Basic Scripting Edition уже зарегистрирован, а другой модуль выхода Visual Basic Scripting Edition создан. Чтобы избежать этой ситуации, необходимо отменить регистрацию одного из модулей выхода Visual Basic Scripting Edition с помощью инструкции командной строки regsvr32 /u FileName.dll, где FileName.dll — это имя модуля выхода visual Basic Scripting Edition, который не должен быть активным.
Разработчики ICertExit в Visual Basic Scripting Edition должны называть свой проект в формате :
"MyApp"
Где MyApp — описатель, идентифицирующий приложение; Кроме того, класс, реализующий ICertExit, должен иметь имя "Exit".
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certexit.h (включая Certsrv.h) |