高手来看————》棘手问题:多站之间的SESSION传递,即在一台服务器上登录之后,再访问其它服务器上的网页就不用再登录了

linanwang 2005-07-11 07:49:37
基本情况是: 有一个主框架页面,在进入前进行验证

在左框架中选择不同的栏目,则在主框架上打开不同的网页,这些asp网页不在同一台服务器上,它们都需验证才能进入。

曾想过用QueryString或FORM 将用户名密码提交到其它服务器上的一个固定页面进行验证,然后将状态保存在SESSION中,然后再通过'response.Redirect 转向到此服务器上的其它页面,但发现,SESSION不能保存不知道是为什么?但如果不用框架,提交时打开一个新窗口,就可以!



这个问题己困挠我数日,请各位大侠们指教
...全文
357 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
beiouwolf 2005-07-13
  • 打赏
  • 举报
回复
SESSION不能通过REDIRECT传递
不过可以通过server.transfer "URL"
用transfer转移页面时是保留SESSION值的
QCB181 2005-07-13
  • 打赏
  • 举报
回复
把session复制过去
linanwang 2005-07-13
  • 打赏
  • 举报
回复
至: wwxuelei(乘风破浪)

你再试试吧,可能你没有理解我的意思

wwxuelei 2005-07-13
  • 打赏
  • 举报
回复
不是问题的问题,谈什么解决方法呀?
dreampeter 2005-07-13
  • 打赏
  • 举报
回复
有没有考虑在转向的时候用临时的COOKIES代替一下呢?
wwxuelei 2005-07-13
  • 打赏
  • 举报
回复
是呀,我本机和另一个网站呀
linanwang 2005-07-13
  • 打赏
  • 举报
回复
是不同服务器上的网站吗?
wwxuelei 2005-07-13
  • 打赏
  • 举报
回复
根本没有什么问题嘛!
我把原先的测试页面 main2.asp换成了另一个网站都没问题,在框架里登陆,在外面也有session
在框架里也有
kenvin05 2005-07-13
  • 打赏
  • 举报
回复

【大家帮帮我】

我急需要解决一个控制视频在线播放的问题,

http://community.csdn.net/Expert/topic/4132/4132326.xml?temp=.1704676

去看看,帮我一下啊。。。。
wwxuelei 2005-07-13
  • 打赏
  • 举报
回复
我到现在都没有找到你们说的问题,我按楼主说的改了,
 session("kk")不为空呀
你试过吗?
linanwang 2005-07-13
  • 打赏
  • 举报
回复
至 beiouwolf(beiouwolf)
server.transfer 和 server.Execute()我也用过了,确实可以保留住本次的Session
但是 关键问题是每次和主机通信SessionID 都会变,但总不能每次都把用户名密码提交过去吧
而且这也是不太可能的

linanwang 2005-07-12
  • 打赏
  • 举报
回复
d
linanwang 2005-07-12
  • 打赏
  • 举报
回复
至 wwxuelei(乘风破浪)
将你的 服务器2上的main2.asp 改为

html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<%
if request("kk")<>"" then session("kk")=request("kk")&"pp"
%>
<% if session("kk")<>"" then
response.Redirect("test.asp")

%>
----------------

<%end if%>
</body>
</html>

然后在服务器2上再增加一页
<!-- test.asp-->
<%response.Write(session("kk"))%>

试试,session("kk“) 是不是空的
crycoming 2005-07-12
  • 打赏
  • 举报
回复
根据session的定义,只要你的界面切换到其他网站上了,session就会断开
所以楼主想保留该站点的session应当在框架下加一个指向该站点的隐藏页面就可以了
不过麻烦的是你的框架下有N个隐藏页面指向不同的站点
ptl123 2005-07-12
  • 打赏
  • 举报
回复
学习中 帮顶
wwxuelei 2005-07-12
  • 打赏
  • 举报
回复
我测试了一下是没有问题的
在服务器1登录之后,如若访问服务器2可以传参数过去,服务器2可以根据参数是否为空进行判断
如果不为空,就把session加上。
我测试的例子
服务器1:
  框架集文件,index.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<frameset rows="80,*" frameborder="NO" border="0" framespacing="0">
<frame src="top.asp" name="top" scrolling="NO" noresize>
<frame src="main.asp" name="main">
</frameset>
<noframes><body>
</body></noframes>
</html>
--------------------
top.asp
----------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<table width="406" border="1" align="center">
<tr>
<td width="185"><a href="main.asp" target="main" >main.asp</a></td>
<td width="205"><a href="http://localhost:8040/main2.asp?kk=<%=session("kk")%>" target="main">main2.asp</td>
</tr>
</table>
</body>
</html>
------------------------
main.asp
---------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<% session("kk")="pp"%>
dffffffffffffffff
</body>
</html>
----------------------------
服务器2上的main2.asp
------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<%
if request("kk")<>"" then session("kk")=request("kk")&"pp"
%>
<% if session("kk")<>"" then
response.Write(session("kk"))%>
----------------

<%end if%>
</body>
</html>
linanwang 2005-07-12
  • 打赏
  • 举报
回复
ding
linanwang 2005-07-12
  • 打赏
  • 举报
回复
不好意思,昨天留了个贴子就回家了,接着讨论!

通过数据库好像也不太容易,有更好的办法吗?
crycoming 2005-07-12
  • 打赏
  • 举报
回复
奇怪了,我上面说的你试过不行了?
linanwang 2005-07-12
  • 打赏
  • 举报
回复
再顶
加载更多回复(5)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧