转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
asp 与 asp.net 共享session         ★★★★

asp 与 asp.net 共享session

作者:闵涛 文章来源:闵涛的学习笔记 点击数:822 更新时间:2009/4/23 10:43:08

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


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()+"''''>");
   }
  }
  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.net页面提交到asp页的时候不能使用Server.Transfer方法,所以只好用Response.Write来自己写Form表单提交。
代码中还有要改进的地方也请各位大虾赐教。


[Web开发]一个关于ASP运行时间计算的代码  [Web开发]ASP:检测含有中文字符串的实际长度
[Web开发]asp 中英文字符长度检测判断函数  [Web开发]安全维护 IIS asp 站点的高级技巧
[Access]ASP&SQL让select查询结果随机排序的实现方法  [Web开发]ASP字符串截取函数
[Web开发][asp]关键词只替换一次的写法  [Web开发]Asp无组件生成缩略图方法详解
[Web开发]asp编程中优化数据库方法详解  [Web开发]三种方法教你asp如何去除html标记
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台