是否有共享ASP3和ASP.NET之间的会话的方法吗?
谢谢
是否有共享ASP3和ASP.NET之间的会话的方法吗?
谢谢
尽管所有的使ASP和ASP.NET共存不费吹灰之力微软尽了最大努力,一个区域仍然是一个绊脚石......会话状态。 幸运的是ASP.NET的升级会话状态管理的优点远大于不能够“经典”的会话信息传递到.NET的不便。 不幸的是没有简单的解决方案; 我可以提供最是容易实现的解决方法。
在试图找到一个合适的分辨率,我遇到两个能值得一提的不错的选择。 首先需要解析的会话信息进行隐藏表单域“经典”中间页,然后提交页面加载表单字段到会话状态的.NET中间页。 这是一个很好的,简单的解决方案,但它不工作两者兼得。 在.NET中你不能指定提交页面。 每个页面都有回发到自身。
第二个选项是可能比一个解决方法更接近实际的解决方案。 比利源在微软开发了一个有效的解决方案。 该代码是优雅的,整合似乎是无缝的,但我不能让它在我的系统上工作(记得我说,有没有简单的解决方案,而不是有没有解决方案)。 如果该解决方案适用于您,伟大的! 你不会需要我的代码,你会从“经典”愉快地传递会话信息.NET像它会不时兴了,感谢串门。
好吧,如果你还在读书,让我简要介绍一下我创建了解决方法。 它需要一个数据库,但它并不重要哪种类型的数据库(尽管代码是SQL Server写的)。 当一个页面(源页面)要重定向到另一页(目标页)使用不同版本的ASP,它调用一个中间页。 源中间页面需要每个会话变量,并将其与一个全局唯一ID(GUID)沿着添加到数据库中。 由于“经典”和.NET使用不同的会话ID的格式是不可能使用的SessionID,因此,使用一个GUID的。 源中间页然后通过查询字符串变量的GUID到目的地中间网页。 目的地中间页从数据库中获取会话信息,经过自己清理,然后重定向到目标页面。 它类似于第一种解决方法,但支持双向传输状态。 代码使用安装
用法
对于一个超链接(锚标记)使用或Response.Redirect的,设置的目标网址为以下之一:
从ASP“经典”页面:
SessionTransfer.asp?dir=2aspx&url=<asp_dotnet_url>
从ASP.NET页面:
SessionTransfer.aspx?dir=2asp&url=<asp_classic_url>
该代码将传递会话信息和将用户重定向到由或指定的URL。 下载
您可以从下载的代码在这里 :session_transfer.zip(4.6 KB)。
可以看看NSession它使传统的ASP和ASP.Net之间共享会话状态使用状态服务器。 很容易安装只是配置应用程序使用状态服务器会话并注册几个DLL文件。