2

我正在尝试将当前登录的用户凭据传递给 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。

在此处输入图像描述

任何帮助将不胜感激。

4

0 回答 0