求助:Webserive引用已定义的session值?

chenyu112 2009-09-18 04:44:39
如题
系统中程序文件.aspx页面已经定义好了session,我想要在这个程序中的webserive中引用这个定义好的session,如何引用?
如果webservice中只启用EnableSession, 取到的值是空值!
...全文
152 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyu112 2009-09-21
  • 打赏
  • 举报
回复
接贴给分
SK_Aqi 2009-09-20
  • 打赏
  • 举报
回复
帮顶,上面说的那个类也不是很清楚
chenyu112 2009-09-20
  • 打赏
  • 举报
回复
急啊!
哪位高手给个例子最好了。
chenyu112 2009-09-20
  • 打赏
  • 举报
回复
to cat_hsfz:说明白一点。哪个类?我的webserives吗?
24K純帥 2009-09-20
  • 打赏
  • 举报
回复
帮顶。。
chenyu112 2009-09-20
  • 打赏
  • 举报
回复
呵呵,领教了
系统A的流程是:用户登录,进去可以购买,但是购买的是另一个系统B的产品,
系统B在购买时使用的是A系统的webserive,下订单,提货存等操作。

现在的想法:系统B在销售系统A,即调用webserive的下订单的函数中加上判断,如果这个用户没有登陆,或者登陆过期,都是不允许进行下订单的操作的。
但是在webserive如何得到当前登陆用户的信息,即登录的session[userid]。
实际上在下订单时userid是传过去了,但是我不知道这个用户是否在进行登陆状态。(除了修改数据库外)

各位还有没有比较好的解决方法没有?
大家遇到这种情况,都是如何处理的?
bbqqqbq 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wf5360308 的回复:]
个人认为让WebService支持Session是不合理的设计要求,
可以让要调用的系统在调用WebService时提供必需验证(用户名、密码)
[/Quote]
同意楼上的意见
如果非要用,建议做为参数传进去,而不是在webservice中去取值
冷月孤峰 2009-09-20
  • 打赏
  • 举报
回复
个人认为让WebService支持Session是不合理的设计要求,
可以让要调用的系统在调用WebService时提供必需验证(用户名、密码)
  • 打赏
  • 举报
回复
哦,我只是拿对8楼的回复说设计。并不是对这个回复有什么意见,这里抱歉。

从编程角度,8楼的回复我并不反对。

但是让WebService支持Session,其实如果你不讲清楚从客户端到服务器端整个如何配合,而仅仅实现了服务器端的个别功能,也是无法看到效果的。
jack15850798154 2009-09-20
  • 打赏
  • 举报
回复
学习了!!!!!!
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cat_hsfz 的回复:]
你的类必须实现IRequiredSessionState这个标记接口,就这么简单。

这个问题太常见了,往往就是因为大家不知道这个接口的存在,或者知道但忘记了有这么一回事。
[/Quote]

我明确的设计“要求”是:千万不要在设计web service的时候使用这个机制。

绕开,例如你可以要求客户端单独登录并保持一个通行证对象,当它访问web service的特定的需要验证身份的命令的时候就可以通过服务器端定义同时提供通行证号作为服务方法的参数。
chenyu112 2009-09-20
  • 打赏
  • 举报
回复
1.如果使用application或cache时,如果发生了Session过期,application或cache是否也同时过期?
我的需求是:如果session过期,application也同时要失效。
2.如果每一个登陆的用户都给一个application的话,系统登录的用户多了,是否会影响服务器的性能?

cat_hsfz 2009-09-19
  • 打赏
  • 举报
回复
你的类必须实现IRequiredSessionState这个标记接口,就这么简单。

这个问题太常见了,往往就是因为大家不知道这个接口的存在,或者知道但忘记了有这么一回事。
CMIC 2009-09-18
  • 打赏
  • 举报
回复
用userid啊确认application或cache中唯一,你session听过有你的userid吧,条用webservice把asp.net拿到的userid传给web service,如果web mothed太多在没一个里面加一个userid太麻烦,可以直接把userid放在soap haader里面。
chenyu112 2009-09-18
  • 打赏
  • 举报
回复

如果加到Cache或application时,我如果才能得到当前IE登录的那个用户?
因为是WEB,所在允许多用户登录
每个用户登录时都记录到一个cache或application里,但是无法定位到哪个才是我具体登录的用户?
chenyu112 2009-09-18
  • 打赏
  • 举报
回复
.aspx与webserives是同一个项目。
用户流程:
1.用户访问系统A,进行登录,定义Session
2.用户可能进行某些操作,这时就需要访问到另一个系统B中,B系统操作时需要调用原来的系统A中中Webserive,Session也是用户在访问系统A时登录定义的那个。
gongsun 2009-09-18
  • 打赏
  • 举报
回复
...
CMIC 2009-09-18
  • 打赏
  • 举报
回复
webservice和.aspx页面 是在一个工程下?理论上在一个工程下启用EnableSession就能访问到了。

我猜你的问题是这样的:

user 访问-> asp.net 访问-> webservice

如果是这样,那就麻烦了,因为webservice并不是从user的浏览器上直接访问的,而是运行asp.net的程序的IIS访问的,这是2个session,肯定访问不到。解决的办法是存到cache或application里面,在加一个userid表示变量吧。


随风落梦 2009-09-18
  • 打赏
  • 举报
回复
这个也不太清楚,期待高手解决
ccll001 2009-09-18
  • 打赏
  • 举报
回复
关注

62,041

社区成员

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

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

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

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