我遇到一個奇怪的問題。我有一個運行在Azure App Service(網站)下的Asp.net Core WebApi項目。我在Chrome中使用DHC插件。我的服務也與AAD一起運行。Azure網站Rest Api只接受GET,POST返回403.可能是CORS
我可以請求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]詳細找到'AppServiceAuthSession'網站'blah.azurewebsites.net'的cookie。長度:856
2016-07-28T08:14:26 PID [X]信息發送響應:403.60禁止
2016-07-28T08:14:26 PID [X]警告跨站請求僞造檢測到用戶'[email protected]'from referer''!
我使用的是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]詳細驗證了[email protected]成功使用'會話Cookie'認證。
看起來您的JavaScript客戶端正被身份驗證/授權模塊的CSRF保護阻止,它目前不知道CORS配置(它可能應該)。在你的場景中,最終用戶最初是如何登錄的? –
我使用chrome驗證AAD和我的公司證書。登錄後,Azure可讓GET請求順利進行。我編輯我的帖子也包括成功的GET請求的日誌。 –