首页 新闻 会员 周边

session跨两个不同web app失效问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2010-04-07 19:15

  如何解决:不同web应用中session传递的失效问题?

  上网查了一下,有解说可以用sessionstate mode ="stateserver" 解决,但是在web.config中配置之后,还是不能解决session在不同web应用间的传递。不知有没有可以解决session传递的方法?

coodoing的主页 coodoing | 初学一级 | 园豆:185
提问于:2010-04-05 16:19
< >
分享
所有回答(4)
0

把不同的web app 集成到一个解决方案里面.再更新一下配置文件.

Kylinhe | 园豆:234 (菜鸟二级) | 2010-04-05 17:01
是将两个web app放到一个解决方案里面的,顺便问一下:是不是两个web app的web.config中都需要配置sessionstate值??
支持(0) 反对(0) coodoing | 园豆:185 (初学一级) | 2010-04-05 17:23
0
步碎酒散花醉 | 园豆:210 (菜鸟二级) | 2010-04-05 20:33
0

stateserver是用一个独立的进程保管session,可以防止session丢失,不过想要共享还是做不多~~

因为呢,session是对于用户的,一个app里面key可以重复,它是对于用户级别的对象,其实质是使用了一个sessionId,通过sessionid和key存取的。那么我们把一个相同key放到了stateserver里面,我们是无法得到另外一个app相应用户的sessionid,并且这个sessionid我们也是无法操作的。

所以statesever是做不到的。

放到一起去就没有必要吧,呵呵。可以用cookie跨域的,如果觉得cookie不安全的话可以做一个跳转页面,跳转前将session存到临时数据库,到达之后取出之后删除~~

ps:如果你只是一个stateserver,那更是不可能,不过stateserver就是不行~~

LittlePeng | 园豆:3445 (老鸟四级) | 2010-04-05 20:39
每一个session是通过自己的session id来识别的。 session id在 浏览器打开的时候是自动通过cookie在各个网页内通信的。 如果你关掉浏览器,这个cookie过期,所以下次你找不到上次的session 了。 既然这样的话,我觉得session在浏览器没有关闭的情况下是可以跨域传输的。但是实际情况是session的值没能跨域传输。。 http://www.jdon.com/jivejdon/thread/8259
支持(0) 反对(0) coodoing | 园豆:185 (初学一级) | 2010-04-06 15:58
@DCBI:sessionid的cookies 好像只是绑定子域名,这个cookie就无法再浏览器上跨域,所以不能共享,不过呵呵,不知道传过去会是怎么个情况,应该也是可以的,不过session的cookie的域就不到怎么改~
支持(0) 反对(0) LittlePeng | 园豆:3445 (老鸟四级) | 2010-04-06 17:09
@明天.Net: 谢谢了,不过一直没传过去,现在找到的一种解决方案是用查询字符串传值。不过总感觉有点怪。。session这块搞的头都大了。。。
支持(0) 反对(0) coodoing | 园豆:185 (初学一级) | 2010-04-07 19:18
0

能不能使用一个公共的验证啊??Session共享这个问题很难...

个人建议要么使用forms验证,要么使用SSO或者使用一个webservices来处理用户的登陆...

西越泽 | 园豆:10775 (专家六级) | 2010-04-06 12:24
其实目的就是做一个sso。。。sso机制就是cookie的传递。
支持(0) 反对(0) coodoing | 园豆:185 (初学一级) | 2010-04-07 19:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册