首页 > 编程 > .NET > 正文

把ASP应用中的Session传递给asp.net应用

2024-07-10 13:12:17
字体:
来源:转载
供稿:网友

最近做一个业务处理系统,因为它原有的用户系统使用asp开发,在新的业务系统中使用了asp.net,asp.net application要使用原来的asp用户系统,于是问题出现了,asp application怎样才能让用户登录的状态及用户信息在asp.net中依然有效呢。于是我们考虑用构造form来自动提交传递asp应用中的session变量。
例子如下
asp应用url为http://127.0.0.1/asp/,并在asp.net应用中的web.config设定
  <!--设定asp应用的url-->
  <add key="aspurl" value="http://127.0.0.1/asp/" />

在asp应用中增加两个asp页面system.asp和autopostform.asp
<!--system.asp-->
<%
session("uid")="user"   
session("ispass")="ok"   
server.transfer("autopostform.asp")
%>

<!--autopostform.asp-->
<%
response.write("<form name=t id=t action=""http://127.0.0.1/aspdotnet/getsession.aspx""

method=post >")
response.write("<input type=hidden name=uid" )
response.write( " value=" & session("uid") & " >")
response.write("<input type=hidden name=ispass" )
response.write( " value=" & session("ispass") & " >")
response.write("</form>")
response.write("<script>t.submit();</script>")
%>

在asp.net应用中用页面getsession.aspx来接受传递过来的session变量值

getsession.aspx.cs代码片段:
private void page_load(object sender, system.eventargs e)
  {
 
  if(!page.ispostback)
  {
   string aspurl=configurationsettings.appsettings["aspurl"].trim();     
   try
   {
    string fromurl=request.servervariables["http_referer"];
   
    //验证是否从asp应用中提交过来
    if(fromurl.startswith(aspurl))
    {
     string uid=request["uid"].tostring();
     string state=request["ispass"].tostring();
   
      if(uid!="" && state=="ok")
      {
       //表明用户在asp系统中已登录成功
   
      }
 
    }
    else
    {
     response.write("<script>alert('非法用户或未登录用户');top.location.href='" + aspurl +

"';</script>");
   
    }
   
   }
   catch
   {
    response.redirect(aspurl);
   }

  }
}


 

http://aspsir.cnblogs.com/archive/2005/12/24/41802.html


 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表