从经典ASP迁移 - > ASP.NET超过六个月 - 会话策略?

时间:2011-03-29 21:20:04

标签: asp.net session asp-classic

我正在使用一个使用会话状态的ASP Classic应用程序。它有很多页面。我正在慢慢迁移到.NET,其ETA大约为六个月。

是否值得更改经典的asp以使用自定义数据库会话来实现该时间范围?或者我应该只迁移,因此应用程序之间的功能是分开的,没有会话共享?

谢谢!

4 个答案:

答案 0 :(得分:0)

过去,我通过维护两个应用程序进行转换,并在数据库层传递两者之间的身份验证信息。当用户请求访问新的ASP.Net应用程序时,使用guid和日期时间在表中写入一个条目,然后重定向到一个验证页面,该页面检查表格中是否有相应的行,该行仅对一定的时间(30s),并且一次性使用。

如果该行存在,则使用相同的用户名授予登录访问权限。

答案 1 :(得分:0)

执行此操作的常用方法是在迁移期间支持两个会话,并让asp.net管理asp和asp.net上所有资源的身份验证。

IIS 6及更高版本具有一项功能,可让您将经典的asp资源重定向到aspnet处理程序。 (我相信这是通过wild card application maps

通过此操作,您将获得未经授权的会话的登录重定向。

如果你想从asp会话访问.net会话,常见的方法是在.net中创建一个处理程序(例如,调用它为“/ SessionSynch”),而不是从asp,你可以执行一个帖子到它,获取所有必要的会话数据。这里需要考虑的是安全性。您希望确保.net处理程序检查请求,并且只有在您的请求来自适当的源时才显示会话信息。

您还可以通过数据库同步信息。

你可以依赖的asp和asp.net之间的一个常见标识是会话cookie,它可以从双方轻松检索。如果您启动Fiddler,您会注意到成功验证后,您的会话cookie将被设置。然后,您可以使用asp中的此cookie从.net

中检索会话信息

答案 2 :(得分:0)

我要考虑的两件事是:

  1. 是否在我的应用程序所需的数据库中保存会话数据?
  2. 将旧应用程序迁移到新平台时,您很可能遇到一些障碍。如果有时间,最好在项目结束时更改会话存储。
  3. 如果时间表尚未被接受,并且您只是想尝试添加其他可交付成果,那么这不会让您花费很长时间。

答案 3 :(得分:0)

最简单的方法(正如你刚才提到的那样)只有一个中间脚本(asptoaspx.asp?redirect = aspxscript.aspx)执行自动表单发布(用户看不到它) )。这是该脚本的伪代码。

  1. 响应使用action = aspxscript.aspx
  2. 编写html表单
  3. 对于ASP response.write隐藏输入中的每个会话变量,其中name = key,value =表单上会话密钥的值
  4. 使用javascript
  5. 提交表单

    这样,当您从ASP页面转到应用程序中的ASPX页面时,您可以准备好使用会话变量。

    希望它有所帮助!