【问题标题】:WEB api 2 getting client domain that is requestingWEB api 2 获取正在请求的客户端域
【发布时间】:2018-11-22 20:59:39
【问题描述】:

大家好,我正在努力寻找一些代码,让我知道对 Web 服务的 POST 请求来自哪个域。

举个例子:

如果网络服务在域中:

bob.com/webService/Postsomething

客户端在域上加载一个页面:

bill.com/postpage.html

一旦在 html 页面上使用 AJAX 关闭 Web 服务,我希望能够从其调用的 post 函数中获取以下信息:

bill.com

到目前为止,我只能获得网络服务所在位置的 IP 和主机名,不是他们从网络服务请求信息的客户端域。

【问题讨论】:

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


    【解决方案1】:

    你可以使用referrer HTTP header:

    public HttpResponseMessage Get()
    {
       var domain =  Request.Headers.Referrer?.GetLeftPart(UriPartial.Authority);
    
        ...
    }
    

    当然,这个标头并不能保证存在,您绝对不能依赖它,因为发出 HTTP 请求的客户端可能会简单地决定不发送它。在使用它之前,您应该始终检查它是否为空。

    【讨论】:

      猜你喜欢
      • 2016-06-05
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多