我们有一个广泛的经典ASP网站,我们正在寻求升级到ASP .Net(最有可能是最新版本)。显然,一次升级所有页面将是一个巨大的任务,所以我们只想在ASP .Net中首先编写新页面(和页面重写)。
这样做有两个障碍:
我不知道如何在ASP .Net中访问经典的ASP会话数据。这只需要设置一次,因为它永远不会被登录页面以外的任何页面修改。我宁愿对经典的ASP登录页面进行微小的更改,但这只是一个小的偏好。
ASP和ASP .Net会话必须同时超时,以保持版本差异无缝。
有人可以提供任何帮助吗?
提前致谢。
答案 0 :(得分:7)
我们面临同样的任务(不好玩)。由于无法共享Asp.Net会话和Asp会话,我们使用了各种方法的组合,每种方法都适用于这种情况。
因此,在第二种情况下,示例流程将从以下更改:
用户尝试访问某些受保护的 内容页面 - >重定向到登录 页面 - >登录 - >会话信息集 基于登录成功 - >重定向 回到内容页面。
到
用户尝试访问某些受保护的 内容页面 - >重定向到登录 页面 - >登录 - >会话信息集 基于登录成功 - >重定向 到.net页面,传递登录 凭证等 - > aspx页面集 会话信息,然后立即 重定向回内容页面。
我们知道这是一个黑客,但它在短期内起作用,直到我们可以让所有网站全部转换。
答案 1 :(得分:1)
使用较新的IIS设置可能有更好的方法(必须承认我没有及时了解IIS7可以做的新功能)。但是您可以从ASP登录页面到ASP.Net页面执行XMLRequest。如果逻辑足够简单,您可以在Post数据中传递所需的设置,或者让.net页面填充会话数据本身。然后.net页面会在cookie中返回一个.net会话ID,您需要在ASP用户cookie集合中设置它,以便该用户同时拥有.net和Classic ASP会话cookie。
那就可以了。
答案 2 :(得分:0)
微软有一个漂亮的good article,虽然它现在有点旧了。