通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>服 务 器>>win服务器>>正文 新版上线![旧版]
注:打开慢时请稍等
在web service中使用asp.net状态保持(5)

http://www.iyit.net  日期:2006-5-6 11:34:18  来源:天极网  点击:
参加讨论】为了研究无cookie的session,我决定使用上面已经使用过的代码,看看它能否在session状态被设置为cookieless的服务器环境中能否工作正常。我也不想费心去删除cookie容器的相关代码,因为我希望得到能在两种session状态下都正常工作的代码。作为一个天生的乐观主义者,我一个字也不改就直接运行它。令人失望的事发生了——不过也不是完全没有想到,我不得不面对这个异常:

an unhandled exception of type 'system.net.webexception' occurred in system.web.services.dll

additional information: the request failed with the error message:
--

object moved to here.


发生了什么呢?原来http请求收到的不是“200 ok”响应。如果你熟悉http协议,你或许可以从响应中的html代码中发现这是一个“302 found”响应,这意味着该请求被重定向到超链接中指定的地址。返回html代码是很明智的,这样如果一个浏览器因为某些原因不支持重定向的话,它可以把代码显示出来,或者在重定向过程中显示这些代码直到重定向完成。注意到超链接中包含了一个有趣的字符串“(l2z3psnhh2cf1oahmai44p21)”,显然,我们可以推断这就是asp.net的会话id,它被嵌入了我们要重定向到的位置的url中。在客户端代理中,我们需要做的仅仅是重新发送请求到这个新的url。

无须再在win32 wininet api编程中跋涉,我们可以直接找到proxy类的一个属性允许自动重定向。用外行人的说法,就是如果我们接收到一个“302 found”响应,就直接将请求重新发送到相应中http位置头所指示的url。当visual studio.net的智能提示显示proxy类的allowautoredirect属性时,我感到这东西真是机灵得可爱。我马上就在代码中加上如下一行:

proxy.allowautoredirect = true

我认为这仍然比创建一个cookiecontainer类并关联到proxy类要容易得多,于是我又一次运行程序。很不幸,我遭遇了如下异常(为了简洁起见有所删节):

an unhandled exception of type 'system.invalidoperationexception' occurred
in system.web.services.dll

additional information: client found response content type of 'text/html; charset=utf-8',
but expected 'text/xml'.

the request failed with the error message: …

如果你看到错误消息的内容,你会发现你所看到的html页面跟你浏览.asmx文件的页面一样。问题是,为什么当我传送xml(以soap封装了的形式)到web service服务器时它返回的却是html代码?结果证实,你并没有在soap封装中发送http post请求,而仅仅发送了一个简单的没有内容的http get请求,因此你的web service服务端理所当然地假设这个请求来自浏览器,于是它返回普通的html响应。为什么会这样呢?

如果你了解http协议,你会发现一个http客户端在收到“302 found”响应时发送http get请求到响应中指定的地址是合情合理的,即使初始请求是http post。这种方式下浏览器工作得很好,因为开始几乎所有的请求都是http get类型的,只有当你试图传递数据到一个url时,才会出现上述失败的结果。

理由是在传送的数据中可能包含潜在的敏感数据,因此你需要确认是否用户真的想向新的资源传送数据。显然如果你转向基于重定向设置的新地址,你就没能确认用户是否真的允许将他们的数据发送到新的地址。因此数据并没有被发送,而代之以简单的http get请求。



编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:在web service中使用asp.net状态保持(4)
下一篇:在web service中使用asp.net状态保持(6)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
安全维护 iis asp 站点的高级技巧(6) 安全维护 iis asp 站点的高级技巧(5) 安全维护 iis asp 站点的高级技巧(4)
安全维护 iis asp 站点的高级技巧(2) 安全维护 iis asp 站点的高级技巧(1) 在web service中使用asp.net状态保持(6
在web service中使用asp.net状态保持(4 在web service中使用asp.net状态保持(3 在web service中使用asp.net状态保持(2
在web service中使用asp.net状态保持(1 win2003下asp配置技巧 http 500内部服务 asp漏洞全接触-进阶篇
asp漏洞全接触-高级篇 asp漏洞全接触-入门篇  iis实现asp,cgi,perl和php+mysql
iis6.0下asp的新增功能(五) iis6.0下asp的新增功能(四) iis6.0下asp的新增功能(三)
iis6.0下asp的新增功能(二) iis6.0下asp的新增功能(一) 用ie的web服务建立asp.net应用程序
asp+access的安全隐患及对策 aspjpeg添加水印完整方法 asp开发10条经验总结
最新更新 热点排行 推荐新闻
web服务器配置全攻略(四)
web服务器配置全攻略(三)
web服务器配置全攻略(二)
web服务器配置全攻略(一)
影响iis性能的几个因素(1)
linux服务器日志管理详解(3)
linux服务器日志管理详解(2)
linux服务器日志管理详解(1)
在linux下设置www server(4)
在linux下设置www server(3)
在linux下设置www server(2)
在linux下设置www server(1)
设定linux web 服务器(6)
设定linux web 服务器(5)
设定linux web 服务器(4)
web服务器配置全攻略(四)
web服务器配置全攻略(三)
web服务器配置全攻略(二)
web服务器配置全攻略(一)
影响iis性能的几个因素(1)
qq珊瑚虫外挂4.0版本发布!
新开放qq免费挂级网站
免费在qq上看在线电影电视听音乐
免费把qq炫铃设为本机qq的系统提示音
摄影后期系列一:1分钟为数码相片去红眼
流金岁月!cpu历史上最难忘的十个第一
教您显示器亮度对比度的调节
腾讯qq调整升级条件不再诱发网民“通宵
qq挂机的n种快速方法
qq挂机说明
巧用photoshop图案工具
用photoshop制成浪漫的“珍珠项链”
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息