如何使用WebAPI域中的用户在WebAPI上的不同计算机上验证客户端?

时间:2015-04-30 09:40:46

标签: c# asp.net-web-api windows-authentication

我有一个启用了Windows身份验证的ASP.NET Web Api 2.2。

此外,我有一个使用.NET Framework 4.0的客户端连接到此WebAPI:

HttpClientHandler handler = new HttpClientHandler()
{
    UseDefaultCredentials = true
};

// Llamar al servicio web para obtener los códigos.
using (var client = new HttpClient(handler))
{
}

但客户端将在计算机上运行,​​该计算机与web api不在同一个域中。

UseDefaultCredentials = true是否需要将用户,密码和域传递给网络服务?

1 个答案:

答案 0 :(得分:1)

IIS将尝试使用Windows身份验证验证进入的HTTP请求,并且它将失败,因为该框位于不同的域中。您的服务器端代码都不会执行。查看Fiddler中的HTTP请求/响应流程或浏览器开发人员工具,以更好地了解Windows身份验证的过程。

您可以在服务器上创建一个启用了匿名访问的页面,该页面可以运行一些身份验证代码,但您需要考虑如何安全地发送用户名和密码...