在之前的工作中,我们有一个经典的ASP应用程序,没有人想要迁移到ASP.NET。它做的事情,它做得很好。

但是,有一些新功能需要添加,似乎最适合ASP.NET。决定允许系统成为ASP和ASP.NET的奇怪混合体。

我们最关键的一点是会话管理,我们一起解决了通过表单变量传递会话值的解决方案。我已经和其他通过cookie处理同样问题的人谈过了。

这两种方法看起来都很可怕(除了非常不安全)。

是否有更好或更清洁的方式,或者这是一个如此糟糕的想法,从这个主题的讨论开始是没有意义的?

有帮助吗?

解决方案

您是否可以将会话数据保存到服务器端数据存储?即XML文件,数据库等。然后您可以将一个哈希(基于一些安全标识会话的标准计算)传递给.NET页面,该页面可以使用此标识符从数据存储中选取数据并填充会话数据。它仍然意味着每次都必须通过代理将请求从ASP传递到ASP.NET,以确保每个应用程序中都有最新的会话数据,但我不知道另一种方法可以实现这一点,我担心。

其他提示

我不得不处理同样的问题。就我而言,我将密钥加密为cookie并使用数据库获取任何其他信息。我在.NET中编写了加密,并在ASP端解密了id。有一些奇怪的处理base-64字符串,因为ASP不会得到与.NET相同的字符串,所以你可能必须像我一样做,并将base-64字符串重写为十六进制等效或一些类似的最低公分母战术。它相对安全(保存XSS攻击)。

嗯,最好的想法可能是将ASP应用程序转换为.NET。我想这可能不言而喻。如果安全性是一个大问题,那么就加密和维护会话信息的完整性而言,您可以采取一些步骤,以使其更加安全,例如一些对称加密和散列,以及什么不是。

我不知道在一般情况下做任何更干净的方法。但也许您可以更具体地描述您在系统之间共享的状态?在您的具体情况下可能有一个更清洁的解决方案。 会话对象状态并不总是保持状态的最佳方式。

我不得不同意 Wes P ......什么是长期目标?如果长期目标是将经典ASP应用程序迁移到ASP.NET,那么我认为我的短期修复,无论它可能是什么,都会起作用。如果长期是保留经典的ASP应用程序,那么最好使用更强大的会话管理解决方案,类似于 Oglester 推荐。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top