我正在尝试将当前登录的用户凭据传递给 Exchange Web 服务托管 API。不尝试检查它们或检查值,只需使用它们进行调用。该应用程序正在使用 Windows 身份验证,并且当前的 Windows 身份符合预期。
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" />
和 IIS 也设置 Windows 身份验证。加载用户配置文件在应用程序池上设置为 false。
任何帮助将不胜感激。