Я пытаюсь использовать Redemption для обновления контактов пользователя Outlook.Пользователь, на которого я влияю, передается в exchangeUser, назовите его «Целевой пользователь».Этот код работает, когда я запускаю его, выполнив вход в систему под своим именем:
public OutlookFolders(string outlookRootFolder, string exchangeUser, string mailServer)
{
var session = new RDOSessionClass();
session.LogonExchangeMailbox(exchangeUser, mailServer);
session.Stores.FindExchangePublicFoldersStore();
var store = session.GetSharedMailbox(exchangeUser);
//...
}
Я попытался войти в систему как третий пользователь «Тестовый пользователь», который не является мной и не является «Целевым пользователем».Моя программа вызывает запрос пароля во время выполнения, когда она попадает в FindExchangePublicFoldersStore, и, если я не заполняю свои учетные данные, происходит сбой с ошибкой:
System.Runtime.InteropServices.COMException (0x8004011D): Error in
IMAPISession.OpenMsgStore(pbExchangeProviderPrimaryUserGuid):
MAPI_E_FAILONEPROVIDER
ulVersion: 0
Error: Microsoft Exchange is not available. Either there are network
problems or the Exchange computer is down for maintenance.
Component: Microsoft Exchange Information Store
ulLowLevelError: 2147746069
ulContext: 1318
Я пытался дать разрешение владельцу «Тестовый пользователь» наПапка почтового ящика и контактов «Целевого пользователя».Кажется, не имеет значения.Какие другие разрешения необходимо установить, чтобы это работало?