在之前的工作中,我们有一个经典的ASP应用程序,没有人想要迁移到ASP.NET。它做的事情,它做得很好。
但是,有一些新功能需要添加,似乎最适合ASP.NET。决定允许系统成为ASP和ASP.NET的奇怪混合体。
我们最关键的一点是会话管理,我们一起解决了通过表单变量传递会话值的解决方案。我已经和其他通过cookie处理同样问题的人谈过了。
这两种方法看起来都很可怕(除了非常不安全)。
是否有更好或更清洁的方式,或者这是一个如此糟糕的想法,从这个主题的讨论开始是没有意义的?
答案 0 :(得分:8)
您是否可以将会话数据保存到服务器端数据存储?即XML文件,数据库等。然后您可以将一个哈希(基于一些安全标识会话的标准计算)传递给.NET页面,该页面可以使用此标识符从数据存储中选取数据并填充会话数据。它仍然意味着每次都必须通过代理将请求从ASP传递到ASP.NET,以确保每个应用程序中都有最新的会话数据,但我不知道另一种方法可以实现这一点,我担心。
答案 1 :(得分:5)
我不得不处理同样的问题。就我而言,我将密钥加密为cookie并使用数据库获取任何其他信息。我在.NET中编写了加密,并在ASP端解密了id。有一些奇怪的处理base-64字符串,因为ASP不会得到与.NET相同的字符串,所以你可能必须像我一样做,并将base-64字符串重写为十六进制等效或一些类似的最低公分母战术。它相对安全(保存XSS攻击)。
答案 2 :(得分:1)
嗯,最好的想法可能是将ASP应用程序转换为.NET。我想这可能不言而喻。如果安全性是一个大问题,那么就加密和维护会话信息的完整性而言,您可以采取一些步骤,以使其更加安全,例如一些对称加密和散列,以及什么不是。
答案 3 :(得分:1)
我不知道在一般情况下做任何更干净的方法。但也许您可以更具体地描述您在系统之间共享的状态?在您的具体情况下可能会有一个更清洁的解决方案 会话对象状态并不总是保持状态的最佳方式。
答案 4 :(得分:1)