【问题标题】:Migrate from Classic ASP -> ASP.NET over six months - strategy for session?六个月内从经典 ASP -> ASP.NET 迁移 - 会话策略?
【发布时间】:2011-11-19 10:48:41
【问题描述】:

我正在使用一个利用会话状态的 ASP Classic 应用程序。它有好几页。我正在慢慢迁移到 .NET,预计 ETA 大约为 6 个月。

是否值得改变经典的 asp 以使用自定义数据库会话来实现该时间范围?或者我应该只是迁移,以便应用之间的功能是分开的并且不共享会话?

谢谢!

【问题讨论】:

  • 您是说要停止在 Session 中存储信息并开始存储并从数据库中调用它吗?
  • 是的,是什么让您认为在迁移到 ASP.NET 时应该摆脱 Session? ASP.NET 仍然支持并广泛使用 Session。
  • 我说的不太对。 ASP.NET 应用程序将有自己的身份验证方法,但我不知道我是否应该改造 Classic 以使用会话数据库,以便迁移可以发生在同时访问 Classic 和 .NET 的人的情况下..跨度>
  • 我认为战术调用在很大程度上取决于应用程序的性质——您能否详细说明它是如何以及在何处使用会话的,尤其是从硬币的经典 ASP 方面如何完成这种访问.
  • 现在经典部分被学生和老师使用; asp.net 部分由管理员和人们用来设置系统。我一直在尝试按角色进行转换,但学生和老师之间存在共享功能,除非我可以批量处理,否则我不愿意破坏它们。

标签: asp.net session asp-classic


【解决方案1】:

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

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

【讨论】:

  • 不是林恩从比特和字节 BBS 中崩溃吗?
  • 44 magnum 和 mom megademo 这两个词对你有什么意义吗?
【解决方案2】:

这样做的一种常见方法是在迁移期间支持两个会话,并让 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 中检索会话信息

【讨论】:

    【解决方案3】:

    我要考虑的两件事是:

    1. 我的应用程序是否需要在数据库中持久保存会话数据?
    2. 将旧应用程序迁移到新平台时,您很有可能会遇到一些障碍。如果有时间,最好在项目结束时更改会话存储。

    如果时间表尚未被接受,而您只是想尝试添加另一个可交付成果,那么这不会花费您很长时间。

    【讨论】:

      【解决方案4】:

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

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

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

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 2013-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-14
        • 2016-04-15
        • 1970-01-01
        • 2011-04-29
        • 1970-01-01
        相关资源
        最近更新 更多