フロントエンド(AngularJsとAsp.Net MVCを使用して作成)用に2つのアプリケーションを作成し、バックエンド用にWeb APIアプリケーションを使用しました。OWIN:Azureの401 unauthoriedエラーを返すwebapiコール
フロントエンドでフォーム認証でアプリケーションを保護しようとしていて、バックエンドで基本フォーム認証を実装しました。
IISでローカルでテストしたところ、正常に動作しました。しかし、私のアプリケーションをAzureでホストしたとき、認証属性を持つAPIコールは401の不正なエラーを返します。
応答ヘッダー:
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Length:0
Date:Wed, 05 Oct 2016 11:08:30 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
Set-Cookie:ARRAffinity=925cd503f9e5771e9ad651c59baa4a1f678d93cac8b9da4dc9bcb64892ac8710;Path=/;Domain=FrontEnd.azurewebsites.net
WWW-Authenticate:Basic realm="Backend.azurewebsites.net"
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
要求ヘッダー。リクエストヘッダ
Authorization: Basic dmlzaG53guFua2FyLnNha3Roadh4bEBnbWFpbC5jb206MTIzMTIz
Cookie: __RequestVerificationToken_L3Nfg4dwc3Bh0=YGwlXkckjhg6xTESkI-lN9sNtDVsfefshsrvGWPKekmv_GLZ0Rq8eA5P8Z7sdf4trwbPX4WymcGJJrLamQLMe2Vf2D2fVUg4qJptOvcsCWg1; ASP.NET_SessionId=gk4s1rlsfg5gfeafo3455dkr; .ASPXAUTH=C8113FD23FC4902dsfrsdf5FB3399BA121703F41F9A57AEA50667F2AD4FC02F3D3955215A91F6A3A2EA4287202522380435A93D8BE78D45E6D24FB7E05F64653AE06E0026DEB2911343591563F70EE8EE76338F07CBABE6EA4B95359F3C31sdf9C999sdf2864849gfdB916A06gfds29E3C8D01D2371807E98335000D4D14B391CCE3zxcd49DB77696F4BB77E4434
と共に
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:backend.azurewebsites.net
Origin:http://FrontEnd.azurewebsites.net
Pragma:no-cache
Referer:http://FrontEnd.azurewebsites.net/
Token:null
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
しかし、ローカルでは
認可およびクッキーパラメータがフォーム認証とアズールフロントエンドアプリケーションからの要求に追加されますされていない渡されます。
私のバックエンドのアプリケーションのazureは、オフに設定されています。どのボディでも問題が何か、または私がazureポータルで設定する必要があることを知ることができます。
ローカルで両方のアプリケーションがおそらくlocalhostを使用しているので、クッキーを共有しますが、一度デプロイすると別のアプリになるので、認証クッキーを共有しないでください。 –
@NeilThompsonリクエストにクッキーを追加する方法はありますか? – Skull
これは解決ですか? –