Asp.net mvc 服务器端webapi调用的Windows身份验证失败

Asp.net mvc 服务器端webapi调用的Windows身份验证失败,asp.net-mvc,asp.net-web-api2,windows-authentication,iis-8,Asp.net Mvc,Asp.net Web Api2,Windows Authentication,Iis 8,我有一个MVC5Web应用程序托管在IIS8上,该应用程序使用Windows身份验证进行保护。应用程序有一个WebApi2控制器,我正在通过MVC控制器从服务器端调用它,但是我在调用时不断收到401未经授权的命令(POST动词) 我尝试过但没有成功的事情: 将应用程序池用户标识设置为自定义帐户 使用帐户凭据启用ASP.NET模拟 编辑注册表以将域列入白名单(根据此解决方案) 想知道是否有其他人对这个问题有任何建议/以前见过这个问题?在实例化我的HttpClient时,这个解决方案对我很有效

我有一个MVC5Web应用程序托管在IIS8上,该应用程序使用Windows身份验证进行保护。应用程序有一个WebApi2控制器,我正在通过MVC控制器从服务器端调用它,但是我在调用时不断收到401未经授权的命令(POST动词)

我尝试过但没有成功的事情:

  • 将应用程序池用户标识设置为自定义帐户

  • 使用帐户凭据启用ASP.NET模拟

  • 编辑注册表以将域列入白名单(根据此解决方案)


想知道是否有其他人对这个问题有任何建议/以前见过这个问题?

在实例化我的HttpClient时,这个解决方案对我很有效

            var clientHandler = new HttpClientHandler()
            {
                Credentials = CredentialCache.DefaultNetworkCredentials
            };
            var client = new HttpClient(clientHandler);

你是怎么打电话的?如果使用http调用另一个控制器方法,则需要发送授权标头。我已使用调用api端点的代码更新了问题。好的,是的,这是一个http调用。ASP.Net安全上下文不会通过HTTP进行转换,因此您需要添加适当的授权头。啊,好的,谢谢艾米。我会调查的:)
            var clientHandler = new HttpClientHandler()
            {
                Credentials = CredentialCache.DefaultNetworkCredentials
            };
            var client = new HttpClient(clientHandler);