Set-Cookie标头适用于localhost,但不适用于Azure

时间:2016-11-15 21:39:11

标签: azure cookies cors

基本上我从Angular2应用程序调用我的api上的身份验证端点,该应用程序返回一个带有Set-Cookie标头的响应,该标头应该在浏览器中设置cookie。下面是本地运行时响应的整个标头集

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Server: Microsoft-IIS/10.0
Access-Control-Allow-Origin: http://localhost:3000
Access-Control-Allow-Credentials: true
Set-Cookie: .ASPXAUTH=FB02AB11117BF40DE1E407374A2E4A71FD5B4F9F5AC0F177EA545F1B21D5F6B427670D50567E07B6748B7EE019EFD0279DB4E95EA7ADD4B3BE7E47F2BFBB303E7349FD9ADF9DC5981E373C21D690186AD52E33AD4B73B07163C771657AE9C696A3D4A2792E25C0FB81170FF43212F4110E0E411ABA274912EE548768D75415FF; expires=Wed, 16 Nov 2016 21:07:59 GMT; path=/
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcam9zaC5tYXR0aGV3c1xTb3VyY2VcUmVwb3NcUFRDQ29tcGFzc1xQVENDb21wYXNzLldlYlxhcGlcc2VjdXJpdHlcYXV0aGVudGljYXRl?=
X-Powered-By: ASP.NET
Date: Tue, 15 Nov 2016 21:07:58 GMT
Content-Length: 0

当我从azure托管的Angular2站点调用相同的端点时,我得到几乎相同的标题,但由于某种原因,cookie不会保存在浏览器cookie存储中。失败的标题结果如下

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 0
Expires: -1
Server: Microsoft-IIS/8.0
Set-Cookie: .ASPXAUTH=2D0BC0405993271C4E74B47CD43F9510019973435D67A653FE864B30C94308D6173D1E41717D49DA56F29B51406518DD3DE19F92ABAD8963DF552C22C16566128E9246733A135E25DEDDAE8680A4137A0A86800900024E936332B275C83E5ABF5C31C1654ABE9FFB08136F38AC132A6F103515E89342D4A2EC715BF1A3BC8806; expires=Wed, 16 Nov 2016 21:23:55 GMT; domain=.my-site.azurewebsites.net; path=/
Access-Control-Allow-Origin: http://my-site.azurewebsites.net
Access-Control-Allow-Credentials: true
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 15 Nov 2016 21:23:55 GMT

标题几乎完全相同。对于有效的本地版本,我不包含cookie的域属性,因为chrome不喜欢在localhost上保存带域的cookie。在失败的托管版本中,我添加了域名,前缀为“。”正如我所看到的那些有帮助的帖子。我尝试过使用'。',并尝试不设置域名。在任何情况下,浏览器都不会保存cookie或将其与后续请求一起发送。

我确实注意到标题的顺序由于某种原因是不同的,但是从我读过的那些不应该影响任何东西。它在IE,Chrome和Firefox上失败,因此它似乎不是特定于浏览器的。 Allow-Credentials标头同时出现在两者上。两种情况都使用CORS,两种情况下服务器都使用正确的Allow-Origin标头进行响应。这两个站点都不是https。

关于其他事情可能导致一个人失败而另一个人能够成功的任何想法?

0 个答案:

没有答案