asp和aspx之间的session是不能直接相互读取的;http://www.yicong.com/Article_Show.asp?ArticleID=116&ArticlePage=1提供了一种方法。我觉得这个方法不是很好。如果只需要在asp页面中读aspx的session,则可以采用javascript和一个中间过渡页面
post即可;如果session比较复杂可以通过xmlrequest直接读aspx的session变量。
过渡页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="ProgId" content="VisualStudio.HTML">
<meta name="Originator" content="Microsoft Visual Studio .NET 7.1"> </head> <body>
<form id='mainform' method="post" action="ttt2.asp">
<INPUT id="txtSession" type="hidden" name="Hidden1">
</form>
<script language="javascript">
var getSessionUrl = "GetSession.aspx";
var req;
checkStatus();
function checkStatus()
{
createRequester();
if(req != null)
{
req.onreadystatechange = process;
req.open("GET", getSessionUrl, true);
req.send(null);
}
else{
alert('no response!');
}
}
function process()
{
if(req.readyState == 4)
{
if (req.status == 200)
{
if(req.responseText!='')
{
return req.responseText;
}
else
{
return "no data";
}
}
else
{
return "no data";
}
}
else
{
return "no data";
}
}
function createRequester(){
try{
req = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){
try{
req = new ActiveXObject("Microsoft.XMLHTTP");}catch(oc){
req = null;
}
}
if(!req && typeof XMLHttpRequest != "undefined") { req = new XMLHttpRequest(); } return req; }
</script>
</body>
<script language="javascript">
document.getElementById("txtSession").value = process();
mainform.submit();
</script>
</html>
被请求读取session的页面
public class GetSession : System.Web.UI.Page {
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Response.Clear();
Response.Write(Page.Session["URL"].ToString());
Response.End();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
“URL”是测试的session名。
post即可;如果session比较复杂可以通过xmlrequest直接读aspx的session变量。
过渡页面:
被请求读取session的页面
“URL”是测试的session名。
浙公网安备 33010602011771号