首页 新闻 赞助 找找看

ASP.NET Page 和 webServer 中 Session 共享问题(多站登录共享)

0
悬赏园豆:10 [已解决问题] 解决于 2015-08-28 19:08

有两个站点:A、B

我要实习的效果:A站点登录了B站点就不用登录,B站点登录了A站点就不用登录.

A站点:提供一个webServer接口用于注册、登录.

B站点:通过webServer接口注册、登录.

现在问题是我B站点通过A站点提供的webServer接口登录成功后B站点可以获取到A站点的登录信息.但是A站点的Page页无法获取到登录成功后的Session. 在网上搜了相关问题,发现问题出在cookie上:

我B站点在登录实例化WebServer 时指定了一个静态公共的 CookieCollection

但A站点的Page页就没法指定同一个了.所以A站的Page中一直获取不到Session 信息

求高手指点.

mycing的主页 mycing | 初学一级 | 园豆:197
提问于:2015-08-27 19:37
< >
分享
最佳答案
0

登录成功后在响应中写两个域名的 cookie。

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2015-08-28 09:13

嗯,谢谢.这样是可行

mycing | 园豆:197 (初学一级) | 2015-08-28 11:20
其他回答(2)
0

其实每个站点登录现在比较普遍的方案都是在客户端注册一个Cookie,对于网站来说,每个网站只能注册自己域名对应的Cookie, A站点登录时需要在客户端注册自己的Cookie,然后调用B站点页面地址(一般是通过Ajax实现),B站点在客户端再注册自己的Cookie, Session一般是基于Cookie才能发生作用的(基于QueryString也可以,但不常见)。

收获园豆:4
空明流光 | 园豆:106 (初学一级) | 2015-08-28 09:10

大型站点也是这样的吗?!感觉好像不是通过Cookie,我清了Cookie一样还是登陆状态.

支持(0) 反对(0) mycing | 园豆:197 (初学一级) | 2015-08-28 11:18

@mycing: 你没清对,清了需要重启浏览器,最好能让cookie过期

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2015-08-28 14:00

@沧海一杰: 你不信你可以用httpfox或者fiddler看一看,登陆了后和没登录前发送的cookie是不一样的。

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2015-08-28 14:04

@沧海一杰: 好,回头试试.

支持(0) 反对(0) mycing | 园豆:197 (初学一级) | 2015-08-28 19:04
0

再互相建立个webservice下 取用户状态的方法,最简单的方法,放到数据库中吧。

收获园豆:1
唯我独萌 | 园豆:537 (小虾三级) | 2015-08-28 16:56

我知道session有个模式是用数据库来实现共享的.但这是一个小型门户网没必要弄那么复杂.

支持(0) 反对(0) mycing | 园豆:197 (初学一级) | 2015-08-28 19:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册