asp.net session 跨子域(subdomain)

通过共享 session 使得 asp.net 在不同子域(subdomain)间实现单点登陆,
但是 asp.net session  默认是不能跨域的。

首先需要让session保存在数据库或者state server ,这样才能共享session信息(默认是保存在服务器内存,不同子域是不通用的).
实现会话状态存储提供程序
http://msdn2.microsoft.com/zh-cn/library/ms178587(VS.80).aspx
在 asp.net 中实现复杂一点
在每个子域 的 global.asax 里面
Application_EndRequest 事件处理函数里面加上
Response.Cookies["ASP.NET_SessionId"].Value = Session.SessionID;
Response.Cookies["ASP.NET_SessionId"].Domain = ".flyy.info";

在php中很容易实现修改session.cookie_domain   /  session.save_handler

参考资料
1.php 手册
2.msdn
3.http://www.velocityreviews.com/forums/t108519-session-cookie-not-accessible-across-subdomains.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注