Получение удостоверений источника и поставщика
Область применения: Outlook 2013 | Outlook 2016
Поставщики услуг, обычно поставщики адресных книг, могут предоставить удостоверение, которое можно использовать для представления сеанса в различных ситуациях. Идентификатор поставщика описывается тремя свойствами:
PR_IDENTITY_ENTRYID (PidTagIdentityEntryId)
PR_IDENTITY_DISPLAY (PidTagIdentityDisplay)
PR_IDENTITY_SEARCH_KEY (PidTagIdentitySearchKey)
Для этих свойств задается идентификатор записи, отображаемое имя и ключ поиска соответствующего объекта удостоверения, который обычно является пользователем обмена сообщениями. Поставщики, предоставляющие удостоверение, также задают флаг STATUS_PRIMARY_IDENTITY в свойстве PR_RESOURCE_FLAGS (PidTagResourceFlags).
В зависимости от ваших потребностей можно использовать удостоверение конкретного поставщика или основное удостоверение для сеанса. Удостоверение поставщика также можно использовать для отображения или для получения свойств, таких как PR_RESOURCE_PATH (PidTagResourcePath). PR_RESOURCE_PATH , если задано, содержит путь к файлам, используемым или созданным поставщиком. Получите свойство PR_RESOURCE_PATH для поставщика, предоставляющего первичное удостоверение, если требуется найти файлы, относящиеся к пользователю сеанса.
Получение удостоверения определенного поставщика
Вызовите IMAPISession::GetStatusTable для доступа к таблице состояния.
Создайте ограничение, используя структуру SPropertyRestriction , чтобы сопоставить столбец PR_PROVIDER_DLL_NAME (PidTagProviderDllName) с именем указанного поставщика.
Вызовите IMAPITable::FindRow , чтобы найти строку поставщика. Удостоверение поставщика будет храниться в столбце PR_IDENTITY_ENTRYID , если оно существует.
Получение основного удостоверения для сеанса
- Вызовите IMAPISession::QueryIdentity. QueryIdentity основывает удостоверение сеанса на наличие значения STATUS_PRIMARY_IDENTITY в столбце PR_RESOURCE_FLAGS для одной из строк в таблице состояния. Если ни одна из строк состояния не имеет этого значения, QueryIdentity назначает удостоверение первому поставщику службы, который задает три свойства PR_IDENTITY. Если поставщик услуг не предоставляет удостоверение, QueryIdentity возвращает MAPI_W_NO_SERVICE. В этом случае необходимо создать строку символа, представляющую универсального пользователя, который может служить основным удостоверением.
Явное указание основного удостоверения для сеанса
- Вызовите IMsgServiceAdmin::SetPrimaryIdentity. Передайте MAPIUID для целевого поставщика услуг.