Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将会话变量从经典asp传输到asp.net?_C#_Asp.net_Session_Asp Classic - Fatal编程技术网

C# 如何将会话变量从经典asp传输到asp.net?

C# 如何将会话变量从经典asp传输到asp.net?,c#,asp.net,session,asp-classic,C#,Asp.net,Session,Asp Classic,我正在从asp迁移到asp.net应用程序,在那里我需要将会话变量从index.asp页面传递到aspx页面。有一个示例演示了会话变量的传输 这里我不明白的是,在asp页面中提到的aspx页面在哪里?是否有办法转移到index.asp页面中未提及的任何aspx页面 这是我的密码 dim sItem, i i= 0 For each sItem in Session.Contents if i <> 0 then Response.Write("&

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

这里我不明白的是,在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 %>'
dim sItem,i
i=0
对于会话中的每个sItem.Contents
如果我是0那么
回答。写(&)
如果结束
Response.Write(sItem&“=”&Server.UrlEncode(Session.Contents(sItem)))
i=i+1
下一个%>'

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

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

经典ASP中的会话

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

实现从经典ASP到ASP.Net的迁移

一,

设置演示程序的步骤

创建一个名为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_u帐户对SessionMgr.dll的读取和执行权限

运行演示程序的步骤

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

二,

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

更多信息:

可能存在的副本