广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-13 09:16:53 次阅读 稿源:互联网
    广告

    在原有的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>") 
    %> 

    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  123下一页

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告