asp.net和asp的session的值不通用的,那怎样实现asp.net与asp的会话?请大虾指教
asp.net和asp的session的值不通用的,那怎样实现asp.net与asp的会话?请大虾指教 问题点数:20、回复次数:5Top
1 楼sukaru(逍遥子)回复于 2005-07-02 17:03:14 得分 10
看看这个 http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ConvertToASPNET.asp
在原有的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("<scr" + "ipt>t.submit();</scr" + "ipt>");
</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>
Top
2 楼hchxxzx(NET?摸到一点门槛)回复于 2005-07-02 17:10:05 得分 10
ASP与ASP.NET相互之间,是不能共享SESSION的,要解决这个问题,必须从其他角度获得.
我说一下关于此问题的简要解决办法.
虽然两者之间不能共享SESSION,但两者之间的sessionid值是一样的.所以,共享的办法即从此sessionid来.你可以在数据库建立一个表,此表有3个字段,以sessionid为主键,其余两个字段分别为用户ID及用户密码.这样,在NET中创建了用户session以后,把该用户的sessionid及其他信息写到数据库中,当页面转到asp页面时,即可用当前用户的sessionid,至数据库求取此sessionid所属的记录,并根据求取到的用户ID及密码,创建该用户的session信息.
为实现此目的,你必须在每个页面中(所有asp与asp.net页面),判断当前用户是否已登录,如否,则取sessionid值至数据库中查询有否记录,如有,则创建信息.
Top
3 楼renyu732(Sysinfo)回复于 2005-07-02 17:17:44 得分 0
http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/HowtoShareSessionStateBetweenClassicASPandASP.NET.mspx#EKAATop
4 楼renyu732(Sysinfo)回复于 2005-07-02 17:19:15 得分 0
讨论如何利用 Microsoft .NET 框架类和 .NET 框架的序列化特性,以便在传统 ASP 和 Microsoft ASP.NET 之间共享会话状态。通过共享会话状态,就允许在并行运行现有的 ASP 应用程序和 ASP.NET 应用程序的同时,分阶段地将 ASP 应用程序转换为 ASP.NET 应用程序。Top
5 楼charles036(袁业辉)回复于 2005-07-03 23:33:25 得分 0
能传过去之外,还要考虑到安全性,用form传,session就可以在源文件里看到,用数据库不时时,假使我不在.net中登陆,直接打asp的页面,数据库没更新,也是可以登陆进去的,有没有更好的办法?Top




