【问题标题】:Wep API 2 calls with authorization header gives 403 error带有授权标头的 Web API 2 调用给出 403 错误
【发布时间】:2017-12-14 13:15:52
【问题描述】:

我有一个在本地网络(内联网)上运行良好的 web api 应用程序,只要调用没有授权标头,它也可以在互联网上运行。

所有带有授权标头的调用都会出现以下错误:

403 Forbidden ( 服务器拒绝了指定的统一资源 定位器 (URL)。请联系服务器管理员。

到目前为止我尝试了什么

我添加了包

Install-Package Microsoft,.AspNet.WebApi.Cors

当我添加 Authorization : Bearer The Token 时,该方法返回 403

如何解决这个问题

【问题讨论】:

  • 您是否在标头中发送令牌信息?
  • 如果调用是从 Web 浏览器到服务器,请使用 Chrome 开发者工具,“网络”选项卡(或者其他浏览器也有)查看确切的 HTTP 请求内容是什么(包括标题),然后请在此处发布。
  • 是的,我正在使用 post man 进行测试,并且令牌调用有效并且它返回 access_token,但是当我将 access_token 添加到标头时,方法 api/loaddata 会返回 403,所有调用都没有授权工作正常
  • 你能看看这个吗? stackoverflow.com/questions/44845735/…
  • 我已经尝试过该解决方案,我认为问题不在于启用 cors,因为如果我调用没有 [Authorize] 的任何方法,它工作正常,只有用 [Authorize] 装饰的方法他们返回 403。它们在本地网络上工作,但在真实 ip 上失败

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


【解决方案1】:

根据您提供的详细信息,很明显您有防火墙阻止此类请求。

例如 Forefront TMG 方法到已发布的 Web 服务器:

  1. 无委托,客户端无法直接认证
  2. 无委托,但客户端可以直接进行身份验证

你应该使用第二个选项,你会很好

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2018-07-18
    • 2017-10-10
    • 2018-09-25
    • 2012-04-30
    • 2017-03-07
    • 2022-11-18
    相关资源
    最近更新 更多