由于跨域问题,我决定尝试一种新的解决方法来检测我的两个域之间的会话。我认为这个过程会起作用,因为我没有尝试设置任何 cookie,它在 chrome 和 firefox 中运行良好,但在 IE9 中却不行。
我已经在调试模式下逐步完成,我请求的 aspx 页面无法访问它自己的 Request.Cookies,而当我使用 chrome 时它会这样做。
过程是:
在 domain1(一个 asp.net mvc 应用程序)上,用户登录。作为该登录过程的一部分,在该域上设置了一个 cookie。如果我随后在此服务器上点击测试页面,我可以看到 cookie 已设置。
在 domain2(一个 asp.net webforms 应用程序)上,我向 domain1 上的测试页面发出 jQuery.ajax 请求,该请求旨在检查 cookie 并返回加密字符串。
在通过 ajax 调用此请求期间单步执行对 domain2 的请求时,我可以看到 request.cookies 集合未填充。令人沮丧的是,User.Identity.IsAuthenticated 是真的,但我无法访问我设置的 cookie。
这只是整个跨域安全性的另一个例子吗?对我来说,似乎甚至使用 jsonp 和所有其他各种 hheaders 等进行 ajax 调用,在这种情况下也无济于事,因为它似乎不止于此?