无法使用HttpClient对ASP.NET Web Api服务进行身份验证

我有一个启用了Windows身份验证的Web服务器上运行的ASP.NET Web API服务。


我有一个基于MVC4的客户端站点,该客户端站点在使用HttpClient从服务中提取数据的同一Web服务器上的不同站点中运行。该客户端站点在启用身份模拟的情况下运行,并且还使用Windows身份验证。


Web服务器是带有IIS 7.5的Windows Server 2008 R2。


我面临的挑战是让HttpClient作为其身份验证过程的一部分传递当前的Windows用户。我已经以这种方式配置HttpClient:


var clientHandler = new HttpClientHandler();

clientHandler.UseDefaultCredentials = true;

clientHandler.PreAuthenticate = true;

clientHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;

var httpClient = new HttpClient(clientHandler);

我的理解是,运行启用了身份模拟的站点,然后以这种方式构建客户端,应导致客户端使用当前登录用户的模拟身份向服务进行身份验证。


这没有发生。实际上,客户端似乎根本没有进行身份验证。


该服务配置为使用Windows身份验证,这似乎可以正常工作。我可以在Web浏览器中转到http:// server / api / shippers,并被提示进行Windows身份验证,一旦输入,我就会收到请求的数据。


在IIS日志中,我看到未经身份验证接收到API请求并收到401质询响应。


关于这一方面的文档似乎很少。


我需要对可能出问题的方式或与此应用程序一起使用Windows身份验证的另一种方式有所了解。


慕侠2389804
浏览 810回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP