日期:2009-08-15  浏览次数:20422 次

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