Nam*_*Ngo 3 azure cors azure-web-app-service
我遇到了一个奇怪的问题。我有一个在 Azure 应用服务(网站)下运行的 Asp.net Core WebApi 项目。我在 Chrome 中使用 DHC 插件。我的服务也在使用 AAD 运行。
我可以很好地请求 GET 方法(登录后)。但是,当我请求任何 POST 时,我收到了 403 响应。在日志中环顾四周,我可以看到这一点
2016-07-28T08:14:26 PID[x] 详细接收请求:POST https://blahblah.azurewebsites.net/api/build/beep/
2016-07-28T08:14:26 PID[x] Verbose 发现站点“blah.azurewebsites.net”的“AppServiceAuthSession”cookie。长度:856。
2016-07-28T08:14:26 PID[x] 信息发送响应:403.60 Forbidden
2016-07-28T08:14:26 PID[x] 警告 检测到用户 'blah@blahblah.com' 来自引用者 '' 的跨站点请求伪造!
我正在使用 Asp.net Core 1.0。我在我的代码 (AllOrigin AllHeader) 中启用了 CORS,并且 Azure 网站中的 CORS 有一个“*”条目,它应该接受每个来源。日志流似乎甚至没有访问我的网站,但 Azure 中的某些内容阻止了请求。
有什么帮助吗?
编辑:一个成功的 GET 方法
2016-07-28T20:24:35 PID[22880] 详细接收请求:GET https://blah.azurewebsites.net/api/build/beep/
2016-07-28T20:24:35 PID[22880] 详细发现站点“blah.azurewebsites.net”的“AppServiceAuthSession”cookie。长度:876。
2016-07-28T20:24:36 PID[22880] 详细身份验证 blah@blah.com 成功使用“会话 Cookie”身份验证。
看起来您的 JavaScript 客户端被身份验证/授权模块的 CSRF 保护阻止了,它目前不知道 CORS 配置(它可能应该 - 我会调查一下)。
解决此问题的最简单方法是在客户端设置中添加自定义User-Agent HTTP 标头。我们的内置 CSRF 保护寻找的一件事是客户端是否是浏览器。几乎所有主流浏览器都使用“Mozilla/...”作为用户代理字符串。将此更改为其他内容,以表明您不是浏览器并且您的 POST 请求将成功通过。
| 归档时间: |
|
| 查看次数: |
1039 次 |
| 最近记录: |