域名重定向session丢失、cookie丢失

首先说明一下原委:

需要开通的网址是www.qzhlqh.com,但是因为没备案所以审核不通过,,不过虚拟主机系统自动绑定了一个域名l22.xm10.host.35.com,所以只能把网站放到l22.xm10.host.35.com下,之后用www.qzhlqh.com重定向到l22.xm10.host.35.com。。。。。。。。。。。

其实登录后台管理的原理就是判断服务端是不是存在程序中定下的session。。
但是每个用户都运行同样的aspx页面,运行同样的代码session["admin"],那不是后来的用户都会覆盖前面的用户。。。。。不会的哈,,因为每个session都有唯一的一个sessionId。那服务端是如何判断每一个用户的呢???????就是cookie,大家都知道cookie的存在是因为客户端的浏览器帮我们自动存储,记录下一些需要用得信息。
sessionId就是服务端发送给客户端浏览器,浏览器在把sessionId存在cookie文件中,,,下次在向该域名发送请求消息的时候浏览器就把该域名的cookie也就是sessionId也一起发送给服务端了。。。。。服务端在根据从cookie中得到的sessionId去服务端内存中找各自的session。。。。。。这就是session的实现原理。。。。。。

 

额,问题就来了,网站不能登录后台管理。。。。程序逻辑没错,在本地调试运行都是正常的。。。在虚拟主机中除了多出了重定向才出现不能登录的问题。。。
随后用各种不同的浏览器测试该网站。。。发现除了微软的IE才不能登录。。其他的浏览器:谷歌、360等都可以正常登录。。。。。。
网上查找资料发现是因为IE默认的隐私管理方案阻止了cookie,所以不能登录:


大家注意看第二条:阻止没有经您明确同意而保存可用来练习您的信息的第三方Cookie。。。
例如 first.abc.com 这个页面中使用 iframe( 或者 img script 等等方式 ) 嵌入了一个 third.xyz.com 的页面, first.abc.com 会设置一些 cookie 到用户本地,例如 trackid, 由于我们浏览器直接访问就是 first.abc.com ,所以这些 first.abc.com 设置的 cookie 可以称为第一方 cookie ,而 third.xyz.com 也可能需要设置一些 cookie 到本地,例如 uc1 什么的,相对而言,这个 third.xyz.com 设置的 cookie 叫第三方 cookie( 不是本家 ) ,而在 iframe 等发出请求到 third.xyz.com 时,一般希望能够将本域名 (.xyz.com) 下的原有 cookie( 例如这里他自己设置的 uc1) 带上,不过不幸的是由于某些浏览器用户隐私保护设置问题,不会把 third.xyz.com cookie 发送出去,如果 third.xyz.com 需要依赖这些本地发送的 cookie ,那么就会产生问题。

简而言之:你浏览器地址栏上的URL就是第一方,,其他的都是第三方,,没有第二方、也没有其他方了。。。。

posted @ 2011-10-24 23:43  圣歌  阅读(3344)  评论(0编辑  收藏  举报