【问题标题】:How to transfer session variable from classic asp to asp.net?如何将会话变量从经典 asp 传输到 asp.net?
【发布时间】:2015-02-10 04:41:56
【问题描述】:

我正在从 asp 迁移到 asp.net 应用程序,我需要将会话变量从 index.asp 页面传递到 aspx 页面。有一个示例演示了会话变量传输。

Transfer Session Variables from Classic ASP to ASP.NET

我不明白的是,asp页面中提到的aspx页面在哪里?有没有办法转移到 index.asp 页面中没有提及的任何 aspx 页面?

这是我的代码,

 dim sItem, i
  i= 0
  For each sItem in Session.Contents
    if i <> 0 then
      Response.Write("&")
    end if
    Response.Write(sItem & "=" & Server.UrlEncode(Session.Contents(sItem))) 
    i= i + 1
  next %>'

【问题讨论】:

标签: c# asp.net session asp-classic


【解决方案1】:

首先,ASP.NET 不是经典 ASP 的更新版本。

ASP.Net 中的会话 在 ASP.NET 中,每个网页都派生自 System.Web.UI.Page 类。 Page 类为会话数据聚合 HttpSession 对象的一个​​实例。在此示例中,名为 SessionPage 的自定义 Page 类派生自 System.Web.UI.Page 以提供与 Page 类相同的所有功能。与派生页面的唯一区别是默认的 HttpSession 被自定义会话对象覆盖。

经典 ASP 中的会话

本机 ASP 会话只能将会话数据存储在内存中。为了将会话数据存储到 SQL Server,编写了一个自定义 Microsoft® Visual Basic® 6.0 COM 对象来管理会话状态,而不是使用本机会话对象。这个 COM 对象将在每个 Web 请求开始时实例化,并从 SQL Server 重新加载会话数据。当 ASP 脚本完成后,该对象将被终止,会话状态将被持久化回 SQL Server。

实现经典 ASP 到 ASP.Net 之间的迁移

1.

设置演示程序的步骤

创建一个名为 SessionDemoDb 的新数据库。 创建 SessState 表 (osql.exe –E –d SessionDemoDb –i Session.sql)。 创建一个名为 Demo 的新虚拟目录。 关闭 ASP 配置选项卡下的 ASP 会话。 将 web.config、testPage.aspx、Global.asa、testPage.asp 和 GlobalInclude.asp 复制到虚拟目录。 更新 Global.asa 和 web.config 中的 DSN 字符串设置。会话超时设置是可选的。默认值为 20 分钟。 将 SessionUtility.dll 安装到全局程序集缓存 (gacutil /i SessionUtility.dll)。 使用 regasm.exe (regasm.exe SessionUtility.dll /tlb:SessionUtility.tlb) 将 SessionUtility.dll 公开为 COM 对象。 将 SessionManager.dll 复制到本地目录并使用 regsvr32.exe 进行注册(regsvr32 SessionManager.dll)。 授予 IUSR_ 帐户对 SessionMgr.dll 的读取和执行权限。

运行演示程序的步骤

启动 Microsoft® Internet Explorer。 为经典 ASP 加载 testPage.asp。数字“1”应该出现在网页中。 单击 Internet Explorer 上的刷新以重新加载页面。数字应该增加。 将 URL 更改为 ASP.NET 的 testPage.aspx。该数字应不断增加。 可以通过首先启动 testPage.aspx 页面来重复相同的过程。

2.

每当您的应用程序进行跳转时,页面将被重定向到这个新创建的页面,该页面将为用户必不可少的会话变量创建 cookie。然后这些 cookie 将被 ASP.NET 抓取。使用这些 cookie,根据 ASP.NET 浏览器的要求创建新的会话变量。

更多信息:

https://msdn.microsoft.com/en-us/library/aa479313.aspx

http://www.codeproject.com/Articles/30723/Handle-session-variable-problems-between-classic-A

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 2012-07-05
    • 2012-06-30
    • 2014-10-14
    • 1970-01-01
    相关资源
    最近更新 更多