CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  Web Services

web service验证问题

楼主dengmain(军火)2004-12-04 16:40:52 在 .NET技术 / Web Services 提问

请教:  
  现在用c#客户端请求服务(windows应用程序),使用session登陆  
  设置了public   System.Net.CookieContainer对象保存session的id  
  在同一服务页面(asmx)可以取回设置的session  
  但是在请求第二个服务页面的时候怎么也取回不了session  
  而且用cook.Count属性取回的数量cook有2个,不知怎么解决  
  (使用ie测试服务的时候可以取回session值)  
   
  大家一定要帮忙啊! 问题点数:100、回复次数:7Top

1 楼Tomgus(小桥流水)回复于 2004-12-04 17:17:43 得分 50

因为SESSION是跟会话有关的。  
   
  在使用浏览器进行WEBSERVICE访问时,浏览器会自动的把对应的SESSION数据提交到WEBSERVICE,这样WEBSERVICE就有机会获得上次调用时的SESSION值了。  
   
  而在WINDOWS应用中,一般的应用是不具备上传SESSION的功能的,所以会出现你说的问题。  
   
  解决:  
   
  1——  
  有一个办法在请求的时候,把SESSION内容一起附带进去,但要实现低层的SOCKET开发  
   
  2——  
  把SESSION传递给WEBSERVICE,自己解析SESSION加密的数据(应该有这样的方法,但我不知道)  
   
  3——  
  把SESSION放到数据库中或别的地方而不使用COOKIE看WIN应用能否提交一致的SESSIONID  
   
  4——  
  在WIN应用中不要使用两步走的方法,而是一步到位:  
  同时把Login数据和GetSearchResult一起提交,由WebService执行时先执行LOGIN后执行GetSearchResult实现。  
  当然,这个处理方法需要对LOGIN信息进行加密处理。  
   
  5——  
  当访问WEBSERVICE的时候,创建一个GUID,每次都把这个GUID进行来回传输,通过GUID来识别有效性。但要设置好GUID值的有效期,特别是访问连接信息,否则很步安全Top

2 楼Tomgus(小桥流水)回复于 2004-12-04 17:19:13 得分 50

ASP.NET都把session的ID放在session   cookie里(asp.net_sessionID),然后夹在response中发送到客户端;   客户端在发送request时候也会把这个sessionid附带送到server,   server收到session的信息之后会将其放在session   collection用于以后的交流.  
   
  所以,   客户端没有cookieContainer是不行地:)  
   
  Top

3 楼Tomgus(小桥流水)回复于 2004-12-04 17:19:28 得分 0

客户机上   你必须为你的   WebServie设置好   CookieContainer   才能够为WebServie   保存状态。  
  CookieContainer   cookieJar;  
  MyService   myService=   new   localhost.MyService();  
  MyService.CookieContainer   =   cookieJar;  
   
  而且如果你要在多次调用之间保持状态的话   你必须保证你的CookieContainer   是唯一的。  
  Top

4 楼dengmain(军火)回复于 2004-12-04 17:38:25 得分 0

问题是一个服务文件可以实现session的传递,而在第二个服务文件中就不能回传了(两个服务文件在同一个虚拟目录中,同一个命名空间,而且使用服务的ie测试页面session可以成功传递)  
   
  只要就是怎样使两个服务文件使用同一个CookieContainer   ,现在Net.CookieContainer把两个服务的CookieContainer分开存放了.Top

5 楼dengmain(军火)回复于 2004-12-04 17:52:52 得分 0

谁知道啊!帮帮忙啊!Top

6 楼Tomgus(小桥流水)回复于 2004-12-04 22:54:47 得分 0

可以把CookieContainer做成全局static   变量Top

7 楼wangxt(海贝)回复于 2004-12-06 08:33:41 得分 0

帮你顶Top

相关问题

  • web service 如果写一个验证码的方法,在winform中调用
  • 通过com进行web验证
  • web usb_key个人身份验证:
  • 在WEB中如何实现合法登陆验证
  • 请教关于asp.net web应用程序的身份验证
  • 急!急!急!如何停用WEB页上的验证控件???
  • 怎样让web用户控件里的验证控件失效?
  • 关于Web自定义自验证控件!
  • 【求助】web控件如何用javascript来验证?
  • 200分:讨论,发布在internet上的web service 如何保证只有合法的用户才可以使用,如何验证,讨论,顶者有分!!

关键词

  • asp.net
  • webservice
  • 文件
  • 页面
  • 客户
  • 执行
  • 数据
  • 信息
  • cookiecontainer
  • 取回

得分解答快速导航

  • 帖主:dengmain
  • Tomgus
  • Tomgus

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo