我们正在将ASP Classic网站迁移到ASP.Net。其中一个重大障碍是ASP Classic网站存储在SessionState中的大量数据。
我正在寻找可以在两个应用程序之间共享会话状态的方法。我从microsoft MSDN找到了以下链接,该链接描述了如何与共享数据库共享会话。不幸的是,它使用二进制格式化程序来序列化到数据库中,并且我最近对所述二进制序列化有一些不好的经验。
有没有人对如何分享会话状态有其他建议?或者二进制序列化的替代方法?
答案 0 :(得分:4)
您链接到的MSDN文章是最好的方法。您可以使用cookie,隐藏的表单字段,查询字符串参数或任何其他“解决方法”,但所有这些都是黑客,并且都有问题(安全问题,只是不正常工作,更多的工作而不是完全重写等等。)
答案 1 :(得分:0)
我们必须为几个网站执行此操作。据我所知,没有简单的方法可以做到。
如果您只有少量数据,请加密该数据(使用像Rijndael这样的安全方法)并将其传递给url并在另一端解密。在加密值中包含类似日期戳的内容,以确保链接仅适用于3秒或类似的内容。
如果有更多数据,请将其存储在数据库中,然后将ID传递给URL中的数据,如上所述。同样的过程。
祝你好运。编辑:我应该注意到,正如其他海报所述,以及MSDN文章,这不是最理想的情况,从安全的角度来看可能不是防弹,但它很接近。