对于同一订阅中的三个Azure网站发生了什么,我有点困惑。
我有
- 网站1(通过x.azurewebsites.net)
- website1阶段(通过x-stage.azurewebsites.net)
- 网站2(通过CNAME www.foo.com)
如果我登录到网站1(SimpleMembership),它会设置一个cookie:.ASPXAUTH
如果我登录到网站1阶段(SimpleMembership),它会设置一个不同值的cookie:.ASPXAUTH
如果我去网站2,它会从网站1中删除.ASPXAUTH cookie,但不会从网站1阶段删除!
怎么回事?我需要停止这种情况,因为如果用户访问网站2 ,他们就无法登录网站1
所有三个网站都有相同的ARRAfinity cookie,如果这有任何相关性的话?
我想他们都共享azurewebsites.net域,甚至通过CNAME?(我不知道是这样,但我想一定是这样,一个域如何影响另一个域的cookie?)
编辑:因为x-stage.azurewebsites.net(与x.azurewebsites.net相同)没有受到影响,我认为Azure是问题所在,但为了彻底起见,我正在探索一些选项(正在进行):
- www.foo.com/simple.html不会从网站删除cookie 1
- www.foo.com/blank.chtml不会从网站删除cookie 1
从这里开始,我一次添加一个www.foo.com/的元素,因为这个页面确实会导致cookie丢失。这很有意义!
- www.foo.com/added-javascript.cshtml不会从网站1中删除cookie
下一个测试:数据库访问和响应(今晚需要新的部署…)
我从非常简单的html开始,然后是.cshml。添加现有的页面功能,直到在www.foo.com上加载页面时,cookie被删除/强制从x.azurewebsites.net 进行新登录
违规代码似乎是这个块:
<li class="facebook">
<a target="_blank" title="Join us on Facebook" href="https://www.facebook.com/pages/xxxx/yyy?ref=hl#!/zzz?fref=ts">Join us on Facebook</a>
</li>
奇怪的是,脸书img也不可见
ul.social li.facebook {
background: url("../images/Facebook.png") no-repeat scroll left top rgba(0, 0, 0, 0);
}
即使在VisualStudio中,facebook.png的图像预览也不可见,而它旁边的twitter图标也很好。我以为它可能被破坏了,但事实并非如此。
VS搜索(完整解决方案)在任何地方都没有发现"facebook"的其他用法,但如果我将类名更改为.fb,将图像更改为fb.png,则会显示图像,并且不再存在任何cookie问题。
真奇怪!这个问题是跨浏览器的(IE Edge和Chrome),也发生在其他机器上,所以我仍然很困惑,但至少我已经克服了这个问题。这可能只是Facebook的阴谋:)
编辑:经过进一步挖掘,最终找到了真正的罪魁祸首:
<rules>
<rule name="BookingRedirect">
<match url="Book" />
<action type="Redirect" url="https://xyz.azurewebsites.net/abc" />
</rule>