将请求作为服务帐户发送到WebAPI

时间:2016-07-18 12:47:48

标签: c# asp.net asp.net-web-api asp.net-core

我有两个应用程序。

  • 两者都在同一台服务器上
  • 两者都作为相同的服务帐户运行
  • 两者都需要Windows Auth

我正在尝试使用HttpClient通过简单的帖子请求从一个应用程序转到另一个应用程序;但是,这种身份似乎没有被使用。

我正在使用的内容如下:

var testIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
var handler = new HttpClientHandler()
{
    UseDefaultCredentials = true
};

using (var client = new HttpClient(handler))
{ 
    //...
    HttpResponseMessage respose = client.PostAsJsonAsync("api/controller/Method", request);
    response.EnsureSuccessStatusCode(); // Exception here!
    //...
}

我已经验证testIdentity是我想要运行的服务帐户,但它似乎没有成功。我总是得到401回复。

我还测试了在本地(但是同一个域)发送请求的应用程序,以及服务器上的WebAPI,但这也不起作用(相同的401响应)。

如果我有两个本地应用程序,那么它按预期工作。

知道我可能缺少什么吗?

1 个答案:

答案 0 :(得分:0)

我很难接受这个作为答案,因为我还不知道根本原因;但是,我遇到的问题是通过冒充不同域名的帐户来解决的。