因为最近要把asp和aspx两个网站整合到一起,session自然就成了一个难题了,自己在这方面还没有接触过,所以没办法又到处找资料。微软的网站上提供的是用数据库实现的,总觉得太麻烦,速度又会下降,于是放弃.也有说直接使用的,但我试了下没成功,大部分人认为这样是不可能的。另外还有一种方法,就是通过几个页面转换,我最后选用也是这个方法,通过搜索到的资料,整理后编写了几个页面来转换。主要是通过隐藏的input来实现的。具体方法如下:
asp转asp.net
logincheck.asp
程序代码 程序代码
<%
Username=Request.Form("Username")
Password=Request.Form("Password")
Set Rs = Server.CreateObject("ADODB.Recordset")
sql="select * from teacher where Uname='"&Username&"' and Pwd='"&Password&"'"
rs.open sql,cn,1,1
if rs.bof or rs.eof then
    Response.write("<script>alert('用户名或密码错误!请返回重新输入');window.location.replace('default.asp');</script>")
    Response.End()
else
session("Username")=trim(Rs("Uname"))
    response.write("<form name=frm id=frm action=""asptoaspx.aspx"" method=post >")
     Response.Write "<input type=hidden name=uname value="&session("Username")&">"
     Response.Write "<input type=hidden name=flag value=1">"    //此处用来判断登陆还是退出
    response.write("</form>")
    response.write("<scr" + "ipt>frm.submit();</scr" + "ipt>")
%>
asptoaspx.aspx
程序代码 程序代码
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<script runat="server">
     protected void Page_Load(object sender, EventArgs e)
    {
        string flag = Request.Form.Get("flag");
        if (flag == "1")
        {
             Session["teacher"] = Request.Form.Get("uname");
        }
        else
          {
             Session["teacher"] = "";            
          }
             Response.Redirect("http://127.0.0.1/show");
}
</script>


posted on 2008-05-15 20:21  zeuslin  阅读(171)  评论(0)    收藏  举报