• asp与asp.net共用session


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

  • 相关阅读:
    JS中级二
    JS中级一
    JS入门八
    JS入门七
    JS入门六
    JS入门五
    JS入门四
    JS入门三
    JS入门二
    JS入门1
  • 原文地址:https://www.cnblogs.com/biandande/p/1034935.html
Copyright © 2020-2023  润新知