我有一个启用了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身份验证的另一种方式有所了解。
添加回答
举报
0/150
提交
取消