- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
asp.net关于Cookie同一域名不同子域名的共享问题
这个问题我相信网上有很多了,不过我今天还要想跟大家讨论一下,因为 这个在未来的开发中确实很常用,而且我今天确实也碰到了这样的问题
比如我们要让域名www.sufeinet.com 和idc.sufeinet.com以及tool.sufeinet.com三个域名的Cookie通用,其实一般都是登录Cookie通用,
我们在每个登录页面这样书写
[code=csharp]
FormsAuthentication.SetAuthCookie(“登录的用户ID”, false);
HttpCookie myCookie = Response.Cookies[FormsAuthentication.FormsCookieName];
myCookie.Domain = ".sufeinet.copm";
[/code]
这样其实就行了,这样这个Cookie就可以通用了。
如果要退出我们也不能和平时一样,要这样写
[code=csharp] PersonUserCache.ClearAllCache();
FormsAuthentication.SignOut();
HttpCookie myCookie = Response.Cookies[FormsAuthentication.FormsCookieName];
myCookie.Domain = "www.sufeinet.com";
myCookie.Value = "";
myCookie.Expires = DateTime.Now.AddDays(-1);
//重置用户登陆域名
PersonHelper.PersonLoginDomain = "www.sufeinet.com";[/code]
好了这样就好了,
提醒大家一点,经过我的测试在IIS7以上版本中,只有把这几个网站放在同一个应用程序池里面才可以生效,这点一直不清楚是什么问题,
但是在IIS6里面就没有问题。
如果有那位有好的解决办法也希望提供一下
忘了一点
在Webconfig里还需要这样配置
[code=html] <authentication mode="Forms">
<forms name=".sufeinet" protection="All" timeout="30" path="/"/>
</authentication>[/code]
protection一定要设置为All才行哦
|
|