我遇到了一个奇怪的问题。我有一个Asp.net核心WebApi项目在(网站)下运行。我在Chrome中使用DHC插件.我的服务也与AAD一起运行。
我可以请求一个GET方法很好(在登录后)。然而,当我请求任何职位时,我得到了403个回复。环顾四周的日志,我能看到这个
2016-07-28T08:14:26 PIDx详细接收请求: POST https://blahblah.azurewebsites.net/api/build/beep/ 2016-07-28T08:14:26 PIDx详细搜索到了“AppServiceAuthSession”曲奇,用于网站“bash.azurewebes.net”。长度: 856。 2016-07-28T08:14:26 PIDx信息发送回复: 403.60紫禁城 2016-07-28T08:14:26 PIDx警告跨站点请求伪造检测到用户“blah@blahblah.com”来自推荐人!
我正在使用Asp.net Core1.0。我有CORS在我的代码中启用(AllOrigin AllHeader),以及在Azure网站上的CORS有一个条目'*',应该接受每一个来源。日志流似乎甚至没有击中我的网站,但是Azure中的某些内容阻止了请求。
有什么帮助吗?
编辑:一个成功的GET方法
2016-07-28T20:24:35 PID22880详细接收请求: GET https://blah.azurewebsites.net/api/build/beep/ 2016-07-28T20:24:35 PID22880详细找到了“AppServiceAuthSession”曲奇,用于网站“bash.azurewebes.net”。长度: 876。 2016-07-28T20:24:36 PID22880使用“Session Cookie”身份验证成功地验证了blah@blah.com。
发布于 2016-07-28 22:53:01
看起来您的JavaScript客户端正在被身份验证/授权模块的CSRF保护所阻塞,该模块目前还不知道CORS配置(可能应该--我将研究这个问题)。
解决此问题的最简单方法是在客户端设置中添加自定义的用户代理 HTTP头。我们内置的CSRF保护所寻找的事情之一是客户端是否是浏览器。几乎所有主流浏览器都使用“Mozilla/.”作为用户代理字符串。将其更改为其他内容,以清楚地表明您不是浏览器,您的POST请求将顺利通过。
发布于 2018-08-14 13:38:16
https://stackoverflow.com/questions/38630765
复制相似问题