ユーザーの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);
//...
}
私ではなく、「ターゲットユーザー」ではない3番目のユーザー「テストユーザー」としてログインしようとしました。私のプログラムは、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
「ターゲットユーザー」のメールボックスと連絡先フォルダで「テストユーザー」の所有者権限を付与してみました。違いはないようです。これを機能させるには、他にどのような権限を設定する必要がありますか?