在ASP与ASP.NET之间共享Session值

 尽管微软尽了最大努力来使ASP和ASP.NET能不费力地共存,但还是有一个地方是一块绊脚石-----Session的值。幸运的是ASP.NET在Session处理方面做了较为明显的改善,使得无法将传统的Session值传给.Net 这个问题不那么明显了。不幸的是,这个方法不是很简单。在尝试着寻找合适的解决方法的过程中,我碰到了2个不错的方法,在这提一下。第一个就是将session的值存到一个传统的中间页面的hidden 的input里,然后再把这个页面的值提交到一个.net的中间页面,该页面将把form里的值存到session。这是一个简单有效的方法,但它不能反过来使用。因为在.NET里你无法分辨你提交的页面是哪个。每个页面只能PostBack到本页。第二个方法可能就似乎一个比较实际的方法了。微软的Billy Yuen弄出了一个有效的 方法。虽然它的代码是一流的,整体上也没有什么明显的漏洞,但在我自己的系统上,它就是不起作用 。:( 当然,如果这个东西对你有用,你就无须继续看我的了。多谢浏览 :) 如果你决定继续读下去,那么 我就简单的说说我的方法.首先,它需要一个数据库,哪种类型的都可以。(不过这里的代码是为SQL Server所写的) 当一个页面需要重定位到(Redirect)到另外一个页面,而两个页面使用的分别是ASP和ASP.NET,那么就会产生二个中间页面。负责收集源数据的中间页面将把ASP页里的和ASP.NET里的session存到数据库的一个元组里,这样它们就可以共用一个数据库的GUID了,这么做是因为传统的ASP和.NET使用的是不同的SessionID格式,因此我们不用SessionID而使用数据库记录的GUID。收集源数据的中间页将把这个GUID通过一个 Querystring传递到发送数据的中间页面,发送数据的中间页面将通过数据库读取两方的session的值,存成目标页面能识别的session方式,然后清空对应的记录,再重新定位到目标页面。这个方法支持双向的转化。安装步骤: 1.在你的sql server上运行ASPSessionState.SQL脚本 2.将所有的.asp和.aspx复制到你的站点的某个文件夹里 3.修改在SessionTransfer.asp和SessionTransfer.aspx.cn里的文件里的连接数据库的内容。 4.编译Aspx的文件使用:在超级链接或者redirect里使用,格式如下从ASP页面到ASP.NET页面 SessionTransfer.asp?dir=2aspx&url= 从ASP.NET页面到ASP页面 SessionTransfer.aspx?dir=2asp&url=
代码下载
http://www.asp101.com/articles/sidney/sharingsessionstate/session_transfer.zip
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值