IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 网络编程 > .Net编程 > ASP和ASP.Net共享Session解决办法

ASP和ASP.Net共享Session解决办法

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

  在原有的asp程序中用asp.net添加功能模块,共享SESSIONs是一个难点,下面介绍一种较为简洁的方法,可以在asp和asp.net中共享session会话。

  登录页面使用C#重新创建,在成功登录后执行语句:

  Response.Write(&<script language='javascript'>window.open('ASPXTOASP.aspx','new');</script>&);

  打开aspxtoasp.aspx页面,action设为aspxtoasp.asp,即可将session值post到asp页面,因为是单向传递,不用在其他页面重复执行动作,经测试,传递成功!

  Aspxtoasp.aspx代码如下:

  <script language=&C#& runat=&server&>

  Response.Write( &<form name=t id=t action=ASPXTOASP.asp method=post>& );

  foreach(object it in Session.Contents)

  {

  Response.Write(&<input type=hidden name=& + it.ToString());

  Response.Write( & value=& + Session[it.ToString()].ToString() + & >&);

  }

  Response.Write(&</FORM>&);

  Response.Write(&<script>t.submit();</script>&);

  </script>

  Aspxtoasp.asp代码如下:

  <%

  for i=1 to Request.Form.Count

  Session(Request.Form.Key(i))=Request.Form(i)

  next

  Response.End

  %>

  <script language=&JavaScript&>

  window.close();

  </script>

  这是一个老话题了,因为最近用的到,所以没办法又到处找资料。微软的网站上提供的是用数据库实现的,总觉得太麻烦,也有说直接使用的,但我没有试成功。我认为直接使用是不可能的。还有一种方法,就是通过几个页面转换,我使用的也是这个方法,通过总结搜索到的资料,整理后编写了几个页面来转换。主要是通过隐藏的input来实现的。具体方法如下:

  asp 转 asp.net 页面:

  用一个asp页,把session信息写到input中,提交给asp.net页

  trans.asp

  <%

  ’’----------测试数据--------

  session(&name&)=&srx&

  session(&id&)=&1&

  session(&sex&)=&f&

  session(&pass&)=&asdfas&

  session(&age&)=&23&

  session(&weight&)=&131&

  ’’--------------------------

  Response.Write(&<form name=frm id=frm action=&&asptoaspx.aspx&& method=post >&)

  for each Item in Session.Contents

  Response.Write(&<input type=hidden name=& & Item)

  Response.Write( & value=& & Session(item) & & >&)

  next

  if len(Request.QueryString(&Destpage&)) >4 then

  Response.Write(&<input type=hidden name=DestPage value=& & Request.querystring(&DestPage&) & &>&)

  end if

  Response.Write(&</FORM>&)

  Response.Write(&<scr& + &ipt>frm.submit();</scr& + &ipt>&)

  %>

#p#副标题#e#

  asptoaspx.aspx

  <%@ Page language=&c#& %>

  <script language=C# runat=server>

  private void Page_Load(object sender, System.EventArgs e)

  {

  Session.Timeout = 60;

  for(int i=0;i<Request.Form.Count;i++)

  {

  Session[Request.Form.GetKey(i)]=Request.Form[i].ToString();

  }

  allsession(); //输出所有的Session,使用时可注释掉

  try

  {

  if( Session[&DestPage&].ToString().Length >4 )

  {

  Server.Transfer(Session[&DestPage&].ToString(),true);

  }

  }

  catch {}

  }

  private void allsession()

  {

  Response.Write (&There are & + Session.Contents.Count +& Session <I>var</I>iables<P>&);

  foreach(object obj in Session.Contents)

  {

  Response.Write(&Session[&+obj.ToString()+&] - &+Session[obj.ToString()].ToString()+&<br>&);//输出所有的Session,使用时可注释掉

  }

  }

  </script>

  asp.net 转 asp 页面:

  用一个asp.net页,把session信息写到input中,提交给asp页

  trans.aspx

  <%@ Page language=&c#& %>

  <script language=C# runat=server>

  private void Page_Load(object sender, System.EventArgs e)

  {

  // ----------测试数据---------

  Session[&name&] = &srx&;

  Session[&sex&]=&F&;

  //----------------------------

  Response.Write(&<form name=frm id=frm action=aspxtoasp.asp method=post>&);

  foreach(object obj in Session.Contents)

  {

  Response.Write(&<input type=hidden name=’&+obj.ToString()+&’&);

  Response.Write(& value = ’&+Session[obj.ToString()].ToString()+&’>&);

  }

  try

  {

  if(Request.QueryString[&DestPage&].ToString().Length > 4 )

  {

  Response.Write(&<input type=hidden name=’DestPage’&);

  Response.Write(& value = ’&+Request.QueryString[&DestPage&].ToString()+&’>&);

  }

  }

#p#副标题#e#

  catch{}

  Response.Write(&</form>&);

  Response.Write(&<scr&+&ipt language=’javascript’>frm.submit();</scr&+&ipt>&);

  }

  </script>

  aspxtoasp.asp

  <%

  for i=1 to Request.Form.Count

  Session(Request.Form.Key(i))=Request.Form(i)

  next

  if Len(Session(&DestPage&)) >4 then

  Response.Redirect(Session(&DestPage&))

  end if

  ’----------输出所有的Session-------------

  call allsession() ’使用时注释掉此行代码即可

  function allsession()

  Response.Write &There are & & Session.Contents.Count && Session <I>var</I>iables<P>&

  Dim strName, iLoop

  For Each strName in Session.Contents’使用For Each循环察看Session.Contents

  If IsArray(Session(strName)) then ’如果Session变量是一个数组? ’循环打印数组的每一个元素

  For iLoop = LBound(Session(strName)) to UBound(Session(strName))

  Response.Write strName & &(& & iLoop & &) - & & _

  Session(strName)(iLoop) & &<BR>&

  Next

  Else ’其他情况,就简单打印变量的值

  Response.Write strName & & - & & Session.Contents(strName) & &<BR>&

  End If

  Next

  end function

  ’--------------------------------------------

  %>

关键词标签:ASP,ASP.Net,共享,Ses

相关阅读 ASP.NET创建XML Web服务全接触 如何提高ASP.NET页面载入速度的方法 .net导出海量数据到execl文件 ASP.NET 2.0程序安全的基础知识 ASP.NET中MD5与SHA1加密的几种方法 在.net开发中几个重要的认识误区

文章评论
发表评论

热门文章 在ASP.NET MVC中实现大文件异步上传 在ASP.NET MVC中实现大文件异步上传 在.NET环境下为网站增加IP过滤功能 在.NET环境下为网站增加IP过滤功能 诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022 诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022 ASP.NET 如何避免页面重新整理时重复送出 ASP.NET 如何避免页面重新整理时重复送出 钟离圣遗物推荐-原神钟离圣遗物词条 钟离圣遗物推荐-原神钟离圣遗物词条

相关下载

人气排行 诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022 asp.net表单提交方法GETPOST 在ASP.NET中如何判断用户IE浏览器的版本 Asp.net中messagebox的实现方法 Asp.net中的web.config配置 在ASP.NET MVC中实现大文件异步上传 asp.net获取URL和IP地址 FileUpload上传多文件出现错误的解决方法 ASP.NET Web.config配置详解 Asp.net常用的51个代码(非常实用) ASP.NET打开word文档出错的解决办法 让你的.NET程序兼容不同版本的Dll文件