同一网站下多个项目共用Session的情况(两个项目不是统一解决方案),有没有可能,应该怎么做

szhuk 2008-04-09 04:37:04
同一网站下多个项目共用Session的情况(两个项目不是统一解决方案),有没有可能,应该怎么做
之前看过一些类似的帖子如:http://topic.csdn.net/t/20040910/11/3359224.html
但都没有成功
我现在的两个项目是
1.net 2.0项目
2.布局在统一的网站下不同的虚拟目录
3.使用数据库保存Session
...全文
793 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
szhuk 2008-04-10
  • 打赏
  • 举报
回复
自己顶一下
nj_1st_excellence 2008-04-09
  • 打赏
  • 举报
回复
如果一定要共享Session的话,可以先将Session保存下来,可以存成文件或存到数据库中,每次需要时从中提取
szhuk 2008-04-09
  • 打赏
  • 举报
回复
谢谢大家:
jun_01 :你这个方法是最没有方法的时候才可以用的,不是很安全感觉
wxg22526451 :这个我也考虑过,但Cookie方式对安全也是一个考验

goody9807 :你这个文章我最近看过,是关于负载均衡时Web端的一些问题,之前我也碰到过我不知道
<machineKey validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24EA123C" validation="SHA1"/>
这一行的具体含义,还有我对你上面所说负载均衡方式分配方式还存有异议
我以前的一个系统是这样子的,Inpro方式3分钟左右就有Session修饰,State方式大概也没有超过10分钟,我是采用的Sql方式
但所有你这个文章没有提到多个项目共享Session的问题,如果您的假设成立也是同一项目在各个Web服务器上的共享
另外关于大用户量访问还有些问题想请教你,如有时间联系我好吗QQ:3830868
再次谢谢
lohoo 2008-04-09
  • 打赏
  • 举报
回复
3.使用数据库保存Session

那么用sessionId做映射,把sessionID保存到cookie中.然后每个页面中去根据sessionid去数据库中读取相应的session内容.
songsu 2008-04-09
  • 打赏
  • 举报
回复
嗯,这个问题有点麻烦。
但可以换个思路来试试
建立一个类库假设MySession.dll专门用来管理 Session,然后在A方案和B方案中引用这个MySession。
在MySession中提供一些方法,
例如验证用户登陆的 bool IsLogin()

这样在A解决方案和B解决方案中就不需要再关心Session,只需要调用MySession类库中的函数就可以达到目的。
jun_01 2008-04-09
  • 打赏
  • 举报
回复
一个很经典的思路:

当一个asp.net的web应用程序要向一个asp写的web应用程序传递session时。

假设源页面为:/dotnet/a.aspx
目的页面为: /asp/b.asp

可以写一个中转页面c.asp, a.aspx先redirect到"c.asp?sessionkey=xxx&sessionvalue=xxx"

在c.asp中取到参数,并保存进session,再跳转到b.asp。当然,你也可以用ajax让c.asp的调用更隐蔽。

这样做感觉挺费的,但确实能实现相关功能。
goody9807 2008-04-09
  • 打赏
  • 举报
回复
wxg22526451 2008-04-09
  • 打赏
  • 举报
回复
有可能的,说下思路:
用cookie先保存下Session信息,
再插入Session信息到数据库。
用户访问网站页面时再先取cookie里的Session信息,
然后与数据库中存的Session信息进行比对,判断是否存在等。
不过前提得两个项目的cookie域一样,
类似于网站得有二级域名。
另外存Session信息最好用对象数据库或内存。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧