我尝试将当前登录的用户凭据传递给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。
非常感谢任何帮助。