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


Интерфейс ICertPolicy2 (certpol.h)

Интерфейс ICertPolicy2 — это один из двух интерфейсов, которые обеспечивают обмен данными между подсистемой сервера служб сертификатов и модулем политики.

Примечание Модуль политики может взаимодействовать с подсистемой сервера служб сертификатов с помощью интерфейса ICertServerPolicy .
 
Подсистема сервера служб сертификатов вызывает методы ICertPolicy2 для выполнения следующих задач:
  • Инициализируйте модуль политики.
  • Уведомите модуль политики о том, что в систему поступил новый запрос. Затем модуль политики может использовать методы интерфейса ICertServerPolicy , чтобы указать, что запрос является хорошим и должен быть выдан, является плохим и должен быть отклонен или должен быть рассмотрен позже.
  • Получение описания модуля политики и его функциональных возможностей.
  • Уведомите модуль политики о завершении работы сервера служб сертификатов.

Интерфейсы служб сертификатов поддерживают как модели потоковых, так и бесплатных потоков. Для повышения пропускной способности рекомендуется использовать свободные потоки.

Наследование

Интерфейс ICertPolicy2 наследуется от ICertPolicy и IDispatch. ICertPolicy2 также имеет следующие типы элементов:

Методы

Интерфейс ICertPolicy2 содержит следующие методы.

 
ICertPolicy2::GetManageModule

Извлекает интерфейс ICertManageModule, связанный с интерфейсом ICertPolicy2, вызывая Метод GetManageModule и передавая адрес указателя на ICertManageModule.

Комментарии

Разработчики ICertPolicy также должны реализовать ICertManageModule. Кроме того, идентификатор ProgID для класса, реализующего ICertPolicy , должен соответствовать соглашению об именовании. В частности, ProgID должен иметь следующий вид:

"MyApp. Политика"

Где MyApp — это описатель, идентифицирующий приложение. Например, в C++ в макросе DECLARE_REGISTRY класса (CMyCertPolicyModule), реализующего ICertPolicy, можно использовать следующее.

DECLARE_REGISTRY(
    CMyCertPolicyModule,
    L"MyCode.Policy.1",
    L"MyCode.Policy",
    IDS_CERTPOLICYMODULE_DESC,
    THREADFLAGS_BOTH);

В предыдущем примере значение IDS_CERTPOLICYMODULE_DESC является идентификатором конкретного приложения в файле ресурсов (.rc) для строки, описывающей класс .

Строковые константы, определенные в Certmod.h, можно использовать для упрощения в соответствии с соглашением об именовании.

Константа Значение
wszCERTPOLICYMODULE_POSTFIX TEXT(". Политика")
 

На сервере служб сертификатов одновременно может быть зарегистрировано не более одного модуля политики выпуска сценариев Visual Basic. Если на сервере служб сертификации зарегистрировано несколько таких модулей политики, оснастка 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, который не должен быть активным.

Разработчики ICertPolicy в Visual Basic Scripting Edition должны называть свой проект в формате :

"MyApp"

Где MyApp — это описатель, идентифицирующий приложение; Кроме того, класс, реализующий ICertPolicy , должен иметь имя Policy.

Требования

   
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header certpol.h (включая Certsrv.h)