現在ログオンしているユーザーの資格情報を Exchange Web サービス マネージ API に渡そうとしています。それらを検査したり値を確認したりするのではなく、単にそれらを使用して呼び出しを行います。アプリケーションは Windows 認証を使用しており、現在の Windows ID は期待どおりです。
WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent(); //returns DOMAIN\useraccount
ただし、CredentialCache.DefaultNetworkCredentials はアプリケーション プールの資格情報を返しています。
exchangeservice.Credentials = CredentialCache.DefaultNetworkCredentials;
\\Passes the application pool credentials.
なりすましを試みましたが、正しいかどうかはわかりません。
using (WindowsImpersonationContext context = identity.Impersonate())
{
exchangeservice.Credentials = CredentialCache.DefaultNetworkCredentials;
\\Passes the application pool credentials.
}
web.config は<authentication mode="Windows" />
Windows 認証も設定し、IIS も設定します。アプリケーション プールで [ユーザー プロファイルの読み込み] が false に設定されています。
どんな助けでも大歓迎です。