在原有的asp程序中用asp.net添加功能模块,共享SESSIONs是一个难点,下面介绍一种较为简洁的方法,可以在asp和asp.net中共享session会话。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)登录页面使用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("scriptt.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页
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)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" + "iptfrm.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;iRequest.Form.Count;i++)
{
Session[Request.Form.GetKey(i)]=Request.Form[i].ToString();
}
allsession(); //输出所有的Session,使用时可注释掉
try
123下一页 onse.Write strName & " - " & Session.Contents(strName) & "BR"
End If
Next
end function
’--------------------------------------------
%