.NET Compact Framework在调用Axis实现的WebService中如何维持Session
2006-05-28 13:16
465 查看
最近在一个WinCE的设备上开发应用,通过GPRS上网调用WebService。服务端用java开发的,使用Axis的实现标准。发现.NET Compact Framework没有实现System.Net.CookieContainer,没法在WinCE的客户端保持会话。
后来通过分析Web请求响应的Http消息头,了解到Axis的Session是通过Cookie来管理,并通过在Http消息头中加入Cookie:JSESSIONID=XS52V1MBNVOAAQSNDBESKHA 进行传递的。在确定了问题原因之后,解决方案就比较简单了:
1、调用login成功的时候服务器返回SessionId;
2、截获HttpWebRequest,加入该消息头。代码如下:
--托管Web服务客户端代理--
1using System;
2using System.Net;
3using MyTest.DataTransfer.WebReference;
4
5namespace MyTest.DataTransfer
6string sessionId = MyTest.DataTransfer.TransmitAdapter.Instance.login(userName, password);
if (string.IsNullOrEmpty(sessionId))
MyTest.DataTransfer.TransmitAdapter.Instance.SessionID = sessionId;
// OK?
bool isAvaiable =MyTest.DataTransfer.TransmitAdapter.Instance.checkSession();
参考资源:
Session Management in ASP.NET
Thin Client for Microsoft Visual SourceSafe on Pocket PC / SmartPhones
后来通过分析Web请求响应的Http消息头,了解到Axis的Session是通过Cookie来管理,并通过在Http消息头中加入Cookie:JSESSIONID=XS52V1MBNVOAAQSNDBESKHA 进行传递的。在确定了问题原因之后,解决方案就比较简单了:
1、调用login成功的时候服务器返回SessionId;
2、截获HttpWebRequest,加入该消息头。代码如下:
--托管Web服务客户端代理--
1using System;
2using System.Net;
3using MyTest.DataTransfer.WebReference;
4
5namespace MyTest.DataTransfer
6string sessionId = MyTest.DataTransfer.TransmitAdapter.Instance.login(userName, password);
if (string.IsNullOrEmpty(sessionId))
MyTest.DataTransfer.TransmitAdapter.Instance.SessionID = sessionId;
// OK?
bool isAvaiable =MyTest.DataTransfer.TransmitAdapter.Instance.checkSession();
参考资源:
Session Management in ASP.NET
Thin Client for Microsoft Visual SourceSafe on Pocket PC / SmartPhones
相关文章推荐
- Windows Mobile和Wince(Windows Embedded CE)下如何封装Native DLL提供给.NET Compact Framework进行调用
- [CF.Skills]在.NET Compact Framework中设置webservice的session状态
- C# .Net动态调用webService实现思路及代码
- 在asp.net webservice中如何使用session
- 在asp.net webservice中如何使用session
- 如何提高.NET Compact Framework应用程序的性能
- 在asp.net webservice中如何使用session
- ASP如何调用。Net的WebService
- 如何判断 .NET Compact Framework 的版本
- webservice系列教学(8)-如何调用webservice(vb.net)
- 忆龙2009:在Microsoft .NET Compact Framework上实现动画效果
- 如何实现Asp与Asp.Net共享Session
- axis调用java实现webservice实例
- net webservice如何调出测试调用
- 如何实现Asp与Asp.Net共享Session
- 如何实现Asp与Asp.Net共享Session
- 在.NET下如何用WebService实现身份认证,及如何跟踪用户的访问,如类似Possport的功能,不会还是用Session吧?
- 妙手空空 --- 如何实现Asp与Asp.Net共享Session
- webservice系列教学(8)-如何调用webservice(vb.net)
- 如何在ASP.Net Ajax中调用WebService