是否可以在asp classic和asp.net之间共享会话状态

是否可以在asp classic和asp.net之间共享会话状态

问题描述:

我们正在将ASP Classic网站迁移到ASP.Net。其中一个重大障碍是ASP Classic网站存储在SessionState中的大量数据。是否可以在asp classic和asp.net之间共享会话状态

我在寻找可以在两个应用程序之间共享会话状态的方法。我从microsoft MSDN找到了以下链接,它描述了如何与共享数据库共享会话。不幸的是,它使用二进制格式化程序来序列化到数据库中,而且最近我对二进制序列化有一些不好的经验。

有没有人有关于如何共享会话状态的其他建议?或二进制序列化的替代品?

+0

http://www.eggheadcafe.com/articles/20041017.asp自己没有尝试过。 – Tim 2011-01-20 19:36:17

您链接到的MSDN文章是最好的方法。您可以使用cookie,隐藏表单字段,查询字符串参数或任何数量的其他“解决方法”,但所有这些都是黑客,并且都有问题(安全问题,只是工作不正确,工作比重写更多等)

我们必须为一些网站做到这一点。据我所知,没有简单的方法来做到这一点。

如果您只有少量数据,请使用像Rijndael这样的安全方法对数据进行加密,然后将其传递给URL,并在另一端对其进行解密。在加密值中加入类似日期戳记的内容,以确保链接仅适用于3秒钟或类似情况。

如果有更多数据,请将其存储在数据库中,然后将ID传递到URL中的数据,如上所述。同样的过程。

祝你好运。

编辑:我要指出,由于其他海报已经注意到,以及MSDN文章,这不是最理想的方案,并且很可能无法从安全角度看刀枪不入,但它接近。