【问题标题】:Post service called once but gets invoked twice on .NET Core Web APIPost 服务调用了一次,但在 .NET Core Web API 上被调用了两次
【发布时间】:2019-02-19 20:19:15
【问题描述】:

我在 .NET Core API 上公开发布服务,并从 WPF 应用程序中使用 HttpClient 调用它。我需要通过调用WindowsIdentity,找到解决方案,需要在HttpClientHandler 上设置DefaultCredentials。但是,当我将其设置为 true 时,Web API 服务会被调用两次,一次使用ClaimsIdentity,第二次使用WindowsIdentity。我只需要与WindowsIdentity 打一个电话。

HttpClient client = new HttpClient(new HttpClientHandler 
{ 
  Credentials = CredentialCache.DefaultCredentials 
});

var response = await client.PostAsync(url, content);
var res = response.Content.ReadAsStringAsync();

【问题讨论】:

  • 你怎么称呼它?
  • 您确定第一个请求不是选项请求吗?
  • @CamiloTerevinto - 上面的代码是调用代码,我在其余 api 中放置了断点,并且我只在设置 DefaultCredentials 时看到 2 个调用,如果我创建一个干净的 HttpClient 实例, API 只被调用一次。
  • @Sam - 不确定您所说的选项请求是什么意思
  • @Alex 好吧,我不知道 HttpClient 是否会这样做,但是浏览器会这样做,而 HttpClient 可能会:通常在发送 HTTP POST 之前发送 HTTP OPTIONS 请求以获取一些信息,例如 CORS 选项。请参阅 - developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS ... 下次调试时可能会仔细检查 HTTP 动词。

标签: c# .net


【解决方案1】:

似乎是正常的,并且是 kerberos 身份验证的一部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 2023-03-28
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多