浏览模式: 普通 | 列表
11月, 2009 | 1
一个位于iframe中的aspx页面,通过iframe的src参数调用,并传递参数,但是ASPX页面无论如何也不能保存SESSION,COOKIES也不行,后来在网络上搜索了相关文章后才知道,IE默认不接受没有标识为安全的第三方COOKIE,造成不能保存COOKEIS以及SESSION。
处理方法:
打开IIS管理器,打开ASPX页面所在的那个站点的属性->HTTP头->添加按钮

自定义HTTP头为 P3P
自定义HTTP头值为 CP=”CAO PSA OUR”

然后保存,再试ASPX访问一切正常。

在开发中,我们经常会遇到使用Frame来工作,而且有时是为了跟其他网站集成,应用到多域的情况下,而Iframe是不能保存Session的。因此,网上可以找到很多相关的文章,如果网站可以采用设置Web.Config中的配置:<sessionState
mode="StateServer"
...

阅读全文…
之前的博客iframe和跨站点cookie引起的session失效问题中已经讲到过此问题,其根源也是由于iframe跨站点cookie被阻导致session失效。但是当时因为两个站点都是自有的服务器,因此通过设置了相同的父域名解决了此问题,所以后来也就没有深入研究此问题。
目前在开发新功能时,又一次遇到了此问题,但是如果仍旧通过更改域名的方式来解决的话,设计上可能就会非常麻烦。于是不得已彻底翻了一下资料,初步研究结果如下:
问题根源:
...

阅读全文…

多域名站点共享COOKIE

[ 2009-11-30 11:01:13 | 作者: admin ]
p.s. 架构轻盈,效果实现

    问题描述:在一个比较复杂的网站环境下。有多个产品向外提供服务。每个产品下都有自己的用户登录界面。现在需要设计一个统一的登录界面。 当用户在这个界面登录后就可以自由的使用各个产品和服务。同时意味着用户用一个帐号可以在不同服务里登录,另一方面就是在一个服务里面登录后可以无障碍的 漫游到其他服务里面去。

            实际应用:Sohu的Passport将focus.cn,17173.com,sogou.com,chinaren.com这四个域 名下的产品全部整合在一起了。用户在这四个站点中任何一个地方都可以登录。当用户登录后可以自由的使用其他域名下的服务。现在很多网站上都有bbs blog album服务。这些服务一般也是自己维护自己的用户信息。当发展到一定时候,也需要一个Passport机制整合所有服务,使用户可以单点登录。

Sohu的实现方案在http://passport.sohu.com/ 登录后 fiddler可以拦截到如下的返回信息:
...

阅读全文…
p.s. 域名下多子网站cookie共享问题经常需要用到,除了开放,重要的是cookie安全

COOKIE可以自动由子级域名分享,无须做什么特别设置。对网站www.abc.com,check.abc.com来说,它们都是二级域名,一级域名是abc.com。所以,保存COOKIE的时候,将Cookie的Domain设置成“.abc.com”,无论www.abc.com还是check.abc.com,都可以顺利读取

public void WriteToCookie(int userId)

        {

               HttpCookie cookie = new HttpCookie(“UserInfo”);

               cookie.Values.Add(“UserId”, userId.ToString());

               cookie.Expires = DateTime.Now.AddHours(1);
...

阅读全文…
1