ASP.NET 経由で Exchange Web サービスに接続しようとすると、エラーが発生します。
次のコードは、コンソール アプリケーションを介して呼び出すと機能しますが、ASP.NET Web フォーム ページで実行するとまったく同じコードが失敗します。補足として、このコード サンプル全体で自分の資格情報を使用しています。
「メールボックスを持たないアカウントとして要求を行う場合、識別フォルダー ID のメールボックスのプライマリ SMTP アドレスを指定する必要があります。」
なりすましユーザーを指定することで問題を解決できるのではないかと考えました。
exchangeservice.ImpersonatedUserId =
new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "email@domain.com");
しかし、その後、別のエラーが発生します。
「このアカウントには、要求されたユーザーを偽装する権限がありません。」
Web アプリケーションが実行されているアプリケーション プールも私自身のアカウント (コンソール アプリケーションと同じ) であるため、この問題の原因がわかりません。
.NET フレームワーク 3.5 を使用しています。
ここにコード全体があります。
var exchangeservice =
new ExchangeService(ExchangeVersion.Exchange2010_SP1)
{
Timeout = 10000
};
var credentials = new System.Net.NetworkCredential("username", "pass", "domain");
exchangeservice.AutodiscoverUrl("email@domain.com")
FolderId rootFolderId = new FolderId(WellKnownFolderName.Inbox);
var folderView = new FolderView(100)
{
Traversal = FolderTraversal.Shallow
};
FindFoldersResults findFoldersResults =
service.FindFolders(rootFolderId, folderView);