asp.net 中的截取 session 变量
作者信息:robbe morris 是2004microsoft的mvp(visual c#)与高级软件工程师他是eggheadcafe.com的一个工程师,eggheadcafe.com支持网站开发工程师 【程序编程相关:DFM文件与XML文件互转】
//================================ 【推荐阅读:发布CSDN BLOG 备份工具】
原文地址:http://www.eggheadcafe.com/articles/hijacksession.asp 【扩展信息:Java线程及同步(synchroniz】
(注意:本问未征得原作者同意,本人仅做学习之用,如有不便敬请见谅)
//================================
愚蠢的用户骗局!我这样称呼我工作的地方.那些用户根本无法通过输入那些你告诉他得到他工作与生活上需要的东西,网站不能完成这样的工作. 众所周知,这是事实.能够看到他们输入的与尽可能的近距离体验到他们当时的处境看起来不好吗!今天往往是妈妈赋予我们更多灵感显得多么的滑稽! 事情经常发生以至我常常为一个新的请功能,使用模块去截取http请求,为的是跟踪一个浏览我们经常被质疑网站的用户最后使用的页面(我将在下面简要的说明)在一个双修日的修补后,我提出了一个原形或事实上是在一个现存网站上一个尽可能少改变的方案. 下面截取http请求的编码技术已经被许多技术指南站点与编程书籍提到.因此,我不会再用基础知识烦你,有一个来自msdn的连接可以供我们使用:«在asp.net.用http管道执行安全的请求处理,过滤与内容定向».我们的目标是找到一个允许技术支持去摄取或截取用户session变量与自动的发送技术支持页面到用户使用的最后一页的技术.可能我们不需要去寻找哪个用户与他们的登陆信息或着询问许多关于他们在网站的什么地方,他们怎么到达那了的问题.他们是怎么到那里的.如果你已经听了技术支持的电话你就知道对于用户与技术支持这是多么的困难与另人沮丧. 第二个目标,他将帮助技术支持能够监控表单元素提交的的真实时间. 最后,但不是最小,实现这个方案对现存的网站没有一点的改变.而且使跨越多个站点成为可能.这是为一个产品定单程序预备.这就是本文的目的.我将保持简述的简单性在一个nutshell,他是怎么工作的? 代码例子由一个名为techsupport的asp.net程序,与一个叫iiscapture程序集组成.techsupport只是一个demo而已例子包含了6行代码成两个页面来实现这个方案.第一个页面的三行代码在askforhelp.asp.它在当前的程序中创建一个新的有问入口,把当前的session信息保存在cache中,cach保存有问题入口信息与用户访问的最后的页面标记这个用户作为一个技术支持模型,设置一个合理的过期期限给这个cache中以便不会在内存中消失.当用户有另一个请求页面的时候,技术支持模式将允许我们从一个元素值以及 任何其他我们觉得对于我们的技术支持是有用的东西传输到更新的session值,//=========================================askforhelp.aspx string url=request.querystring["techsupporturl"].tostring(); iiscapture.troubleticket oticket = new iiscapture.troubleticket(); mssessionkey = oticket.loadnewsessiontoapplication(system.web.httpcontext.current,url);//==============================================第二是技术支持自己登陆的页面.在同一个例子中技术支持需要简单的舔添入有问题的入口编号接着提交. 从这儿,我们将用有问题的入口去发现用户session数据,从一个元素数据与其他任何的程序cache中,重复这些值给他们给技术支持查看.接着定向他们到用户最后登陆的页面.也许你这个产品程序的解决方案应该包括更多的安全测试以方便技术支持记录错误信息.... 下一页