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


Получение удостоверений источника и поставщика

Область применения: Outlook 2013 | Outlook 2016

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

Для этих свойств задается идентификатор записи, отображаемое имя и ключ поиска соответствующего объекта удостоверения, который обычно является пользователем обмена сообщениями. Поставщики, предоставляющие удостоверение, также задают флаг STATUS_PRIMARY_IDENTITY в свойстве PR_RESOURCE_FLAGS (PidTagResourceFlags).

В зависимости от ваших потребностей можно использовать удостоверение конкретного поставщика или основное удостоверение для сеанса. Удостоверение поставщика также можно использовать для отображения или для получения свойств, таких как PR_RESOURCE_PATH (PidTagResourcePath). PR_RESOURCE_PATH , если задано, содержит путь к файлам, используемым или созданным поставщиком. Получите свойство PR_RESOURCE_PATH для поставщика, предоставляющего первичное удостоверение, если требуется найти файлы, относящиеся к пользователю сеанса.

Получение удостоверения определенного поставщика

  1. Вызовите IMAPISession::GetStatusTable для доступа к таблице состояния.

  2. Создайте ограничение, используя структуру SPropertyRestriction , чтобы сопоставить столбец PR_PROVIDER_DLL_NAME (PidTagProviderDllName) с именем указанного поставщика.

  3. Вызовите IMAPITable::FindRow , чтобы найти строку поставщика. Удостоверение поставщика будет храниться в столбце PR_IDENTITY_ENTRYID , если оно существует.

Получение основного удостоверения для сеанса

  • Вызовите IMAPISession::QueryIdentity. QueryIdentity основывает удостоверение сеанса на наличие значения STATUS_PRIMARY_IDENTITY в столбце PR_RESOURCE_FLAGS для одной из строк в таблице состояния. Если ни одна из строк состояния не имеет этого значения, QueryIdentity назначает удостоверение первому поставщику службы, который задает три свойства PR_IDENTITY. Если поставщик услуг не предоставляет удостоверение, QueryIdentity возвращает MAPI_W_NO_SERVICE. В этом случае необходимо создать строку символа, представляющую универсального пользователя, который может служить основным удостоверением.

Явное указание основного удостоверения для сеанса