如题,我有2个网站,站点A(webservice),我要做的是在站点B通过webservice 验证登录,并生成站点A的session 在站点B通过webservice获取这个站点A的SESSION,调试发现一直取不到站点A的SESSION,都是NULL。不了解是为什么,求高手指点。两个站点的Session不能共享,要实现共享得把SESSION存到数据库或其它地方,也就是通过持久化的媒介来共享,那个EnableSession=True,不是这用的好不好两个站点不能共享session我是知道的。我就是想通过webservice生成SESSION,获取SESSION,你说这样可行不。 EnableSession=True这个不是这用的是哪用的?是不是这样的代码:在站步B的web service的工程里面添加对System.Web的引用 HttpContext.Current.Request.Cookies[key]是null? 如果是的,按照我的说方法是可行的我以前就这样写的方法,然后再另外的一个站点里面调用了这个webservice方法的,很正常。当站点B通过站点A生成登录的Session,这个Session是B和A之间的。永远与实际的访问者无关。我不是很明白你的意思。但是你如果现在是在A站生成个Session,然后使用A站的webservice来获取这个Session,肯定能得到值,如果B站需要用到这个Session,也是可以传过去的。我做过这个测试。只要你确定在B站调用A站Web Service时,Session不为空。我做的和你的类似:我的是asp.net+web service(WCF)把asp.net的Session传给Silverlight项目。 EnableSession=True是这么用的,你没错。以变量的形式传吧 在b站点重新建立session 不同站点间的Session问题就不存在了 没必要非要session共享 容易出问题的显然两个东西根本不搭界。lz是要从A来写session,而从B来读session(当然,这是根本不可能的)。而#7楼的程序是A写自己的session,B写自己的session,根本不知道应该去验证一下A和B是否共享的问题,根本没有理解lz想要什么功能!
自己写自己读是没有问题的,如果是两个分开的服务就不行了.还是想办法将SESSION存在某个地方吧
lz可以参考下 sso cas项目。基本想法类似,多一次应用服务系统-》验证中心的访问。
webservice安全方面可以参考wse,一般做法在ws的soapheader添加信息, 在多次webservice请求时,给每次调用的webrequest加上第一次调用时获取到的cookiecontainer |
来源:足球直播