ASP和ASP.Net共享Session解决办法
本文导语: 本文介绍一种较为简洁的方法,可以在asp和asp.net中共享session会话。 登录页面使用C#重新创建,在成功登录后执行语句: Response.Write("window.open('ASPXTOASP.aspx','new');"); 打开aspxtoasp.aspx页面,action设为aspxtoasp.asp,即可将session值post到a...
本文介绍一种较为简洁的方法,可以在asp和asp.net中共享session会话。
登录页面使用C#重新创建,在成功登录后执行语句:
Response.Write("window.open('ASPXTOASP.aspx','new');");
打开aspxtoasp.aspx页面,action设为aspxtoasp.asp,即可将session值post到asp页面,因为是单向传递,不用在其他页面重复执行动作,经测试,传递成功!
Aspxtoasp.aspx代码如下:
Response.Write( "" );
foreach(object it in Session.Contents)
{
Response.Write("");
}
Response.Write("");
Response.Write("t.submit();");
Aspxtoasp.asp代码如下:
window.close();
微软的网站上提供的是用数据库实现的,觉得太麻烦,也有说直接使用的,但没有试成功。我认为直接使用是不可能的。
还有一种方法,就是通过几个页面转换,我使用的也是这个方法,通过总结搜索到的资料,整理后编写了几个页面来转换。主要是通过隐藏的input来实现的。具体方法如下:
asp 转 asp.net 页面:
用一个asp页,把session信息写到input中,提交给asp.net页
trans.asp
4 then
Response.Write("")
end if
Response.Write("")
Response.Write("frm.submit();")
%>
asptoaspx.aspx
private void Page_Load(object sender, System.EventArgs e)
{
Session.Timeout = 60;
for(int i=0;i4 )
{
Server.Transfer(Session["DestPage"].ToString(),true);
}
}
catch {}
}
private void allsession()
{
Response.Write ("There are " + Session.Contents.Count +" Session variables
");
foreach(object obj in Session.Contents)
{
Response.Write("Session["+obj.ToString()+"] - "+Session[obj.ToString()].ToString()+"
");//输出所有的Session,使用时可注释掉
}
}