Asp.net mvc 4 在同一服务器上的应用程序之间传递凭据是否需要委派?

Asp.net mvc 4 在同一服务器上的应用程序之间传递凭据是否需要委派?,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,我在相同的Web服务器上有一个Web API应用程序和一个MVC4客户端应用程序。它们都配置为Windows身份验证。客户端应用程序已启用模拟 当我在Visual Studio中运行客户端时,它成功地将我的windows凭据传递给Web API 当我点击web服务器上的客户机时,web API接收到“NT AUTHORITY\NETWORK SERVICE”,我猜它来自客户机应用程序运行的应用程序池 客户端按如下方式传递凭据: HttpClientHandler handler = new Ht

我在相同的Web服务器上有一个Web API应用程序和一个MVC4客户端应用程序。它们都配置为Windows身份验证。客户端应用程序已启用模拟

当我在Visual Studio中运行客户端时,它成功地将我的windows凭据传递给Web API

当我点击web服务器上的客户机时,web API接收到“NT AUTHORITY\NETWORK SERVICE”,我猜它来自客户机应用程序运行的应用程序池

客户端按如下方式传递凭据:

HttpClientHandler handler = new HttpClientHandler()
{
    PreAuthenticate = true,
    UseDefaultCredentials = true
};
HttpClient client = new HttpClient(handler);
所以我的问题是…我需要授权吗


在Active Directory中没有为此配置web服务器-但我认为由于应用程序位于同一服务器上,模拟就足够了。我会启用委派,但我需要一个系统管理员来完成这项工作,而且需要跨越各种障碍,所以我想确定这就是我所需要的。

好的,简而言之,不需要委派

结果证明这是一个模仿问题。从我所读到的内容来看,由于应用程序都在同一台服务器上,所以这听起来是必需的,但即使我认为我已经正确地配置了它,我还是缺少了一个关键部分。我需要更改aspnet.config中的两个设置:

<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>