zoukankan      html  css  js  c++  java
  • Session共享的简单总结

    1、同服务器、同一域名、不同应用(端口、虚拟目录等)
    这种很简单,把sessionState保存到SQLServer,aspnet_regsql之后,修改存储过程TempGetAppID,把 SET @appName = 置为一个固定字符串即可。这种方案网上一搜一大把,不赘述。

    2、同服务器、域名相同,子域名不同
    这个比较折腾人,基础的处理方案网上也很多,也就是使用SQLServer保存Session,然后添加machineKey和httpCookies Domain设置,相当简单,不赘述。也巧了,测试时手贱在hosts里就用了 .cc.cn 域名,然后问题来了,Firefox/Chrome都没问题,可IE就是死活怎么都不行,各种折腾,各种搜索,就是不行。因为这方案是基于cookies的,后来深入测试发现cookie没有被IE正确保存,好像直接丢弃了,导致每次访问页面都生成不同的SessionID,把web.config中httpCookies Domain设置的行去掉,SessionID就不再变化了,但去掉就不能实现Session共享了。搞了两天,最后终于在E文网站上看到一个类似的问题里提到一个词“TLD”,根据E文的大概意思简单处理了一下,把 .cc.cn 测试域名改为 .cc.com,立刻一切OK了!深入搜索发现原来域名还是分三六九等的,最初的TLD七大顶级域名是.COM、.NET、.ORG、.INT、.EDU、.GOV、.MIL,我朝的.CN域名是近几年才有的,所以IE对它的支持还存在问题,看起来IE好像挺严格的,其实个人感觉IE太过于腐朽,任何一点改变对它来说都是艰难的事情,在这方面Firefox/Chrome就比IE开明多了。继续深入搜索发现好像IE6之后对TLD的支持进行了一些改进,支持长度超过5位的.cn域名(比如xxx.cn)或者三级域名(比如xx.cc.cn),有文章提到短cn域名可以通过根域名下某个路径内的页面写入cookie并且不要设置domain的值,比如在页面 http://a.cn/xxx 中写cookie,这样IE才会把cookie正确设置到a.cn,由于搞清了原因,而且项目站点的cn域名大于三个字符,项目已正常工作,就未再深入测试,需要的朋友可以试试看。

    3、不同服务器、域名相同,端口不同
    这种情况一般是做集群的时候,本人是在问题2的搜索过程中看到的,由于本人的项目并未涉及这个情况,所以并未深入研究,只记得有个要点说两台服务器的IIS设置要修改SiteID保持相同才行,需要的朋友请自行研究。

    4、不同服务器、不同域名
    这种方法好像比较复杂一点,简单了解了一下,关键词是P3P和iframe,需要的朋友请自行深入了解。

  • 相关阅读:
    Encrypted Handshake Message
    RSAParameters Struct
    What if JWT is stolen?
    What's the difference between JWTs and Bearer Token?
    RSA Algorithm Example
    第18届Jolt大奖结果公布
    Ruby on rails开发从头来(windows)(三十六) 调试技巧
    Ruby on rails开发从头来(四十二) ActiveRecord基础(主键和ID)
    YouTube开放基础技术架构 让用户建自家YouTube
    Ruby on rails开发从头来(四十) ActiveRecord基础(Boolean属性)
  • 原文地址:https://www.cnblogs.com/rangeon/p/3634844.html
Copyright © 2011-2022 走看看