ASP权限验证问题..在线等
login.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp" -->
<!--#include file="Inc/MsgBox.asp"-->
<!--#include file="Inc/FormChk.asp"-->
<%
if request("username")="" then
response.write "<script language='javascript'>" & VbCRlf
response.write "alert('用户名不能为空!');" & VbCrlf
response.write "history.go(-1);" & vbCrlf
response.write "</script>" & VbCRLF
response.end
end if
if request("password")="" then
response.write "<script language='javascript'>" & VbCRlf
response.write "alert('密码不能为空!');" & VbCrlf
response.write "history.go(-1);" & vbCrlf
response.write "</script>" & VbCRLF
response.end
end if
username=request("username")
password=request("password")
GetCode=Encodestr(Request.Form("GetCode"))
sql="select * from dates where numb='"&username&"' and pass='"&password&"' "
set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
if rs.eof then
response.write "<script language='javascript'>" & VbCRlf
response.write "alert('用户名或密码不正确!');" & VbCrlf
response.write "history.go(-1);" & vbCrlf
response.write "</script>" & VbCRLF
response.end
else
session("numb")=rs("numb")
session("pass")=rs("pass")
response.redirect "main.asp"
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
main.asp
<!--#include file="conn.asp" -->
<%
sql="select * from dates where numb='"username"' and rank='"x"' "
set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
if rs.eof then
response.redirect "mainx.asp"
end if
sql="select * from dates where numb='"username"' and rank='"a"' "
set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
if rs.eof then
response.redirect "maina.asp"
end if
sql="select * from dates where numb='"username"' and rank='"c"' "
set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
if rs.eof then
response.redirect "mainc.asp"
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
现在问题是 main.asp 里面的验证不知道怎么弄
数据库里面有一个字段是 RANK 值为 X 则是超级管理员 A 则是管理员 C则是普通用户
现在要怎么样实现这三个权限的分离啊.
main.asp
里面就是不对权限的用户打开不同的页面
问题点数:50、回复次数:12Top
1 楼honghong2(凡雅)回复于 2006-03-20 18:45:29 得分 2
你不是以经实现了权限分离嘛。在main.asp
里面判断了是什么权限的用户打开不同的页面啦。
不过如果你的 dates 表里的username字段如果是唯一的话就可以这样判断。否则这样判断是不行的Top
2 楼gxnet12(及郁闷)回复于 2006-03-20 18:53:54 得分 0
啊`
我数据库里面的 numb 是唯一的啊
现在问题就是打不开我要打开的页面
不管以什么用户打开进入的都是超级管理员页面
Top
3 楼avon2006(佳佳)回复于 2006-03-20 18:54:59 得分 3
在验证时就可以对它的权限进行判定了,然后转到相应的页面.也就是说,验证通过时.取出它的权限,进行判定,然后转到相应的页面.不知这样说你是否明白.Top
4 楼avon2006(佳佳)回复于 2006-03-20 18:57:47 得分 1
同时那样判定了,就不用main.asp这个文件了,这个文件简直是多余的.Top
5 楼dragonbbc(dragon)回复于 2006-03-20 18:58:16 得分 5
设置个session("rank"),通过它判断,Top
6 楼gxnet12(及郁闷)回复于 2006-03-20 19:21:43 得分 0
session("rank")
怎么弄`
具体代码怎么写啊~?Top
7 楼honghong2(凡雅)回复于 2006-03-20 19:22:36 得分 4
那是不是你在main.asp页面里要从session("numb")里取出值放变量里再判断啊。而不是直接在
sql="select * from dates where numb='"username"' and rank='"x"' "里用username判断啊Top
8 楼honghong2(凡雅)回复于 2006-03-20 19:27:01 得分 1
楼主。你会不会在ASP里调用VB中自写的DLL啊?帮我看看啊。555。。急。。
http://community.csdn.net/Expert/topic/4627/4627192.xml?temp=.7683222Top
9 楼gxnet12(及郁闷)回复于 2006-03-20 19:39:05 得分 0
谁给我个具体的方案啊
我头都弄大了...
楼上的兄弟.
你说的问题我搞不太清楚Top
10 楼avon2006(佳佳)回复于 2006-03-20 19:59:25 得分 34
晕,还没解决???
在你验证完之后
session("numb")=rs("numb")
session("pass")=rs("pass")
session("rank")=rs("rank") '这个得根据你后面的页面有没有调用到而设的,如果没用到就不用这句了.
接以下代码:
dim rank
rank=rs("rank")
select case rank
case "a"
response.redirect "maina.asp"
case "c"
response.redirect "mainc.asp"
case "x"
response.redirect "mainx.asp"
end select
这样不就解了嘛.....Top
11 楼gxnet12(及郁闷)回复于 2006-03-20 19:59:39 得分 0
没人...
我自己顶`
Top
12 楼gxnet12(及郁闷)回复于 2006-03-20 20:05:35 得分 0
OK了
谢谢楼上各位兄弟`Top




