标题:请问如何用ASP设置用户访问权限
只看楼主
ASP的粉丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-22
 问题点数:0 回复次数:15 
请问如何用ASP设置用户访问权限

我用ASP编写了一个用户登陆界面,用户的用户名和密码等登陆信息存放于一个Access数据库中,数据库与登陆页面连接正常,我现在只能设置成登陆后都进入同一个ASP页面,请问如何才能让不同的用户登陆后进入不同的页面呢?可否有相关代码??
下面是我编写的用户登陆页面代码,请大家指正,谢谢!!

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/user.asp" -->
<%
var Recordset1 = Server.CreateObject("ADODB.Recordset");
Recordset1.ActiveConnection = MM_user_STRING;
Recordset1.Source = "SELECT * FROM user";
Recordset1.CursorType = 0;
Recordset1.CursorLocation = 2;
Recordset1.LockType = 1;
Recordset1.Open();
var Recordset1_numRows = 0;
%>
<%
// *** Validate request to log in to this site.
var MM_LoginAction = Request.ServerVariables("URL");
if (Request.QueryString!="") MM_LoginAction += "?" + Server.HTMLEncode(Request.QueryString);
var MM_valUsername=String(Request.Form("name"));
if (MM_valUsername != "undefined") {
var MM_fldUserAuthorization="";
var MM_redirectLoginSuccess="logook/logook.asp";
var MM_redirectLoginFailed="logoError/logoError.htm";
var MM_flag="ADODB.Recordset";
var MM_rsUser = Server.CreateObject(MM_flag);
MM_rsUser.ActiveConnection = MM_user_STRING;
MM_rsUser.Source = "SELECT name, pass";
if (MM_fldUserAuthorization != "") MM_rsUser.Source += "," + MM_fldUserAuthorization;
MM_rsUser.Source += " FROM user WHERE name='" + MM_valUsername.replace(/'/g, "''") + "' AND pass='" + String(Request.Form("pass")).replace(/'/g, "''") + "'";
MM_rsUser.CursorType = 0;
MM_rsUser.CursorLocation = 2;
MM_rsUser.LockType = 3;
MM_rsUser.Open();
if (!MM_rsUser.EOF || !MM_rsUser.BOF) {
// username and password match - this is a valid user
Session("MM_Username") = MM_valUsername;
if (MM_fldUserAuthorization != "") {
Session("MM_UserAuthorization") = String(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value);
} else {
Session("MM_UserAuthorization") = "";
}
if (String(Request.QueryString("accessdenied")) != "undefined" && false) {
MM_redirectLoginSuccess = Request.QueryString("accessdenied");
}
MM_rsUser.Close();
Response.Redirect(MM_redirectLoginSuccess);
}
MM_rsUser.Close();
Response.Redirect(MM_redirectLoginFailed);
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
#Layer1 {
position:absolute;
width:149px;
height:124px;
z-index:1;
left: 260px;
top: 211px;
}
.STYLE1 {font-size: 12px}
#Layer2 {
position:absolute;
width:139px;
height:197px;
z-index:2;
left: 630px;
top: 155px;
}
-->
</style>
</head>

<body>
<div id="Layer1">
<form action="<%=MM_LoginAction%>" method="POST" name="form1" id="form1">
<p><input name="name" type="text" id="name" />
</p>
<p> <input name="pass" type="password" id="pass" />
</p>
<p align="center">
<input type="submit" name="Submit" value="登录系统" />
<input type="reset" name="Submit2" value="重新输入" />
</p>
</form>
</p>
</div>

[此贴子已经被作者于2006-8-22 22:47:02编辑过]

搜索更多相关主题的帖子: 权限 ASP 用户 访问 设置 
2006-08-22 22:45
seal520_2008
Rank: 1
等 级:新手上路
帖 子:239
专家分:0
注 册:2006-6-13
得分:0 
代码一塌糊涂
你可以在数据库中设置个字段 来设置用户的权限 然后登陆的时候判断下就可以了

每晚0:00上线 msn:seal520_2008@ myblog:http://seal.
2006-08-22 22:46
ASP的粉丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-22
得分:0 
不好意思,我新来这个论坛,不知如何才能在帖子中把代码显示正确,这个代码我测试过,运行正常,但用户登陆后都是进入同一个页面,不知如何才能设置成不同用户登陆后可进入不同页面!

[此贴子已经被作者于2006-8-22 22:51:34编辑过]


2006-08-22 22:48
ASP的粉丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-22
得分:0 
以下是引用seal520_2008在2006-8-22 22:46:46的发言:
代码一塌糊涂
你可以在数据库中设置个字段 来设置用户的权限 然后登陆的时候判断下就可以了

请问如何设置相关代码呢?我的数据库中专门有个设为主键的ID字段,是否可以用这个来设置用户访问不同页面的权限呢?

[此贴子已经被作者于2006-8-22 22:52:26编辑过]

2006-08-22 22:49
fogoo
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-6-16
得分:0 
不是的!
不可以用主健的!
应该新建一个字段的!
当页面只允许该用户访问的话就用SESSION("字段名")<>相应的值
这样来判断就成了!

[此贴子已经被作者于2006-8-23 9:20:45编辑过]

2006-08-23 09:20
ASP的粉丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-22
得分:0 
以下是引用fogoo在2006-8-23 9:20:00的发言:
不是的!
不可以用主健的!
应该新建一个字段的!
当页面只允许该用户访问的话就用SESSION("字段名")<>相应的值
这样来判断就成了!

非常感谢,请问这句应该加在页面代码的什么位置,这个“字段名”可否用中文?另外“相应的值”指的是什么呢?可否有相关代码供参考??

2006-08-23 11:59
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
ASP的粉丝
我真的怀疑你是不是"ASP的粉丝"加个语句嘛!怎么不知道加在哪啊!
就加在你的登录那个处理页面不就行了!
grade 为用户等级;1为黄金会员,0为普通会员
if grade=1 then
response.Redirect("黄金会员的页面")
else if grade=0 then
response.Redirect("普通会员的页面")
end if
end if


程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2006-08-23 13:02
ASP的粉丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-22
得分:0 
以下是引用gdk2006在2006-8-23 13:02:07的发言:
ASP的粉丝
我真的怀疑你是不是"ASP的粉丝"加个语句嘛!怎么不知道加在哪啊!
就加在你的登录那个处理页面不就行了!
grade 为用户等级;1为黄金会员,0为普通会员
if grade=1 then
response.Redirect("黄金会员的页面")
else if grade=0 then
response.Redirect("普通会员的页面")
end if
end if


不好意思,小弟新学ASP,所以比较生疏,还请兄弟多提点,不过你的这个方法只能设置两种登陆等级,我的意思是不同的登录用户进入各自不同的页面,比如我的登录验证数据库里有10个用户,那么这10个用户登录后便进入各自的10个不同的页面中,而不是同个等级的用户都进同一个页面。前面一位老兄给出了在登录成功页加入“SESSION("字段名")<>相应的值”这个方法,可不知在登录页是否需要修改?是否要做一个登录验证页?谢谢!!

[此贴子已经被作者于2006-8-23 13:20:13编辑过]

2006-08-23 13:19
fogoo
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-6-16
得分:0 
当然要了!
现在登陆口处把身份验证先做了!
然后在定义session("字段名")=rs("字段名")
这是在登陆口做的!
然后再在需要赋予权限才能访问的页面规定访问规则!
2006-08-23 15:33
ASP的粉丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-22
得分:0 
以下是引用fogoo在2006-8-23 15:33:03的发言:
当然要了!
现在登陆口处把身份验证先做了!
然后在定义session("字段名")=rs("字段名")
这是在登陆口做的!
然后再在需要赋予权限才能访问的页面规定访问规则!

哦,是这样啊,也就是说登录页面把登录信息送入登录验证页面,然后由验证页面分配打开相应的网页是吗?那么这个“session("字段名")=rs("字段名")”是放在登录验证页面还是登录页面?如果是放在登录验证页面,那么从登录页面把相关信息发入验证页面的代码该如何编呢?

2006-08-23 16:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-85603-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052525 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved