如何禁止用户直接访问一个页面?
前提条件:
1、该用户已经登陆系统。
2、比如他访问一个页面中嵌有另一页面:
<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="337" height="32">
<param name="CONTROLS" value="ControlPanel">
<param name="CONSOLE" value="Video2">
<param name="SRC" value="go.asp?fid=<%=ufid%>">
<param name="AUTOSTART" value="1">
<param name="PREFETCH" value="0">
<param name="LOOP" value="0">
<param name="NUMLOOP" value="0">
<param name="BACKGROUNDCOLOR" value="#000000">
</object>
我不想让他直接访问如go.asp?fid=1122页怎么做得到?
3、我考虑的问题是:本身go.asp就不是链接去读的,好像可以传递参数,但SESSION好象不行,怎么禁止用户直接访问这个页面?
问题点数:0、回复次数:15Top
1 楼zorou_fatal(The world and system is even)回复于 2003-11-04 01:40:25 得分 0
<%
if session("userid")<>1 then
response.redirect("err.asp")
end if
%>Top
2 楼datacomm(湘军一脉)回复于 2003-11-04 09:20:33 得分 0
<param name="SRC" value="go.asp?fid=<%=ufid%>">
我试了一下,在go.asp中无法得到上一页面赋值的session,session是为空的怎么办?Top
3 楼xharry(charry)回复于 2003-11-04 09:21:06 得分 0
检查用户的url,如果里面出现了http://www.youhost.com/go.asp,就
转向你指定的页面Top
4 楼xharry(charry)回复于 2003-11-04 09:26:18 得分 0
我觉得用session不行,搂主只是想让用户不能直接访问go.asp
这个和用户登陆不登陆没有关系,不管是登陆的用户还是非登陆的
用户都不能直接访问go.asp,而zorou_fatal的session似乎只是标志
用户有没有登陆而已Top
5 楼alexzhang00(三角猫)回复于 2003-11-04 09:31:56 得分 0
<%
fromurl = Request.ServerVariables("HTTP_REFERER")
if fromurl = "" or instr(fromurl,"你要判断的域名")=0 then
response.redirect "error.asp"
end if
%>Top
6 楼alexzhang00(三角猫)回复于 2003-11-04 09:34:36 得分 0
如果你的页面是弹出页面的话,也可以这样:
<script>
if (!self.opener)
{
location.href = "error.asp";
}
</script>Top
7 楼yangsm(不要让困难成为理由)回复于 2003-11-04 09:48:47 得分 0
我认为这个不太好实现,因为这不是根据session来判断,只要用户点到了,那可以进入要去的页面里的。Top
8 楼Tal(Tal)回复于 2003-11-04 10:10:47 得分 0
在go.asp中加入:
<%
if resuest.form("OK") & "" <> "OK" then response.end
%>Top
9 楼xxu333(xp)回复于 2003-11-04 10:15:35 得分 0
在go.asp最前面判断
如果满足条件就执行下面代码
否则转到另一个页面
----------go.asp------------
<%
if not ... then
response.redirect "err.asp"
end if
%>
<html>
<body>
.
.
.
</body>
</html>Top
10 楼pepos(风声雨声读书声我不出声家事国事天下事关我鸟事)回复于 2003-11-04 10:30:41 得分 0
我试了一下,在go.asp中无法得到上一页面赋值的session,session是为空的怎么办?
不会吧,你在上一页或用户登录的时候就要赋值给session变量啊!要不他怎么取得到值呢
xharry(charry):
如果像你说的这样的话,那楼主究竟想要做什么?
不管是登陆的用户还是非登陆的
用户都不能直接访问go.asp
那不如直接把页面删掉好了。那不管怎样,都访问不了了啊:)Top
11 楼xharry(charry)回复于 2003-11-04 10:40:30 得分 0
在页面中嵌入go.asp可以啊
大多数的在线电影网站都这么做,因为他们不想用户直接访问电影的url
而是通过嵌入他们的网页中的播放器来观看电影,顺便“观看广告”Top
12 楼datacomm(湘军一脉)回复于 2003-11-04 11:16:43 得分 0
楼上说得好像都有道理。
但是,我是要防止登陆VIP会员利用腾讯的浏览器得到play.asp中(<param name="SRC" value="go.asp?fid=<%=ufid%>">)直接链到go.asp地址,他一旦取得go.aspfid=<%=ufid%>"链接就可以得到流的直接地址,如:rtsp://FGKGgljcK2VoW:YO2JkyCRnoxZV@IP:7635/lianxuju/洛神/01.rm。虽然像realserver可以做到帐号密码验证,但中间清空帐号密码有个时间差,比如说1分钟。就有用户告诉我说他可以利用这个下载电影,但我试了用Net Transport是不能下的。搞不懂了,但我想只要禁止他直接访问go.asp地址就可以防止了,问题是我在play.asp给一个session赋值,但在go.asp中该session是为空的,为什么呢?该怎么做呢?Top
13 楼datacomm(湘军一脉)回复于 2003-11-04 11:24:27 得分 0
我现在是这样做的:
用一个临时字段来实现,play.asp赋值,go.asp再清空。
但上面的session我还未搞懂什么回事。Top
14 楼alexzhang00(三角猫)回复于 2003-11-04 11:32:21 得分 0
Session赋过值后,不可能取不到的,你的代码肯定有问题,如果方便,可以帖出来Top
15 楼minghui000(沉迷网络游戏)回复于 2004-02-04 03:04:52 得分 0
关注Top




