请问一下谁做过网站后台权限管理啊?给一下思路啊!

时间:2022-03-05 16:19:39
我想做个网站,每个人进入后台的权限不同,请问数据库和代码怎么设计啊?请高手帮忙

18 个解决方案

#1


管理员表多加一个权限字段sex:
0  表示超级管理员
1  A板块管理员
2  b板块管理员
...

login.asp 设置session["sex"]=XXX,

leftTree.asp 每功能模块建一个table,
if(session["sex"]=0)
{
  all table.style.display=""
}
else
  相应的teble.style.display="none"

#2


跟楼上的补充一点,楼上的思路只是在菜单里不显示出对应的操作项,但是如果别人通过使用输入网址的形式还是可以访问对应的页面,最好还是在每个页面上加上判断的语句,例如:
<%
if session("sex")<>1 then
resposne.write("<script language=javascript>alert('对不起,你没有操作权限!');history.go(-1);</script>")
response.end
end if
%>

依此类推

#3


我这样做的。
管理菜单进行存储,每个子菜单下的所包含的页面也进行存储。
对管理人员进行分组,对组进行权限进行权限的指定(存储)。
在每页有权限与页面检查程序,不仅仅可以检查到是否有菜单的权限,还检查是否有页面访问权限。
比较复杂,但做完了管理起来很方便。

#4


能不能给个代码参考哈啊!我才学啊!

#5


这里的table怎么划分呢???

#6


就用session判断 即可!

#7


来学习一下。

#8


 string userName = this.txtName.Text.Trim();
        UserInfo userInfo=UserInfoManager.GetUserInfoByUserName(userName);
        if (userInfo == null)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "", "alert('没有该用户名!');", true);
        }
        else 
        {
            if (userInfo.UserPass.Equals(this.txtPass.Text.Trim()))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "", "alert('成功!')", true);
                Session["userInfo"] = userInfo;
                Response.Redirect("index.aspx");
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "", "alert('用户名或密码输入错误!')", true);
            }
        }


这个是登陆的,判断是否有该用户名,如果没有提示“没有该用户”,如果有判断密码是否正确,正确保存的session
你要的是权限,跟这个思路差不多,都是判断呢,当当前登录的用户权限为管理员显示所有功能,如果是普通的显示普通功能...

#9


发现自己现在很懒,都懒得动手打代码了...我回的是我自己做的思路...呵呵!

#10


这个是asp专栏啊,我以为C#呢,呵呵!!
asp手头就有一个,不过跟你要求的不大一样,不管有没有用都给你了
<%dim username,userpsw,checkcode
username=replace(trim(request("username")),"'","")
userpsw=md5(replace(trim(request("userpsw")),"'",""))
checkcode=replace(trim(request("checkcode")),"'","")
if cstr(session("getcode"))<>cstr(trim(request("checkcode"))) then
response.Write "<script LANGUAGE='javascript'>alert('请输入正确的验证码!');history.go(-1);</script>"
response.end
end if

set rs=server.createobject("adodb.recordset")
sql="select * from Admin where userid='"&username&"' and userpsw='"&userpsw&"' and pass=1"
rs.open sql,conn,1,3
if rs.bof and rs.eof then
response.write "<script LANGUAGE='javascript'>alert('对不起,您的用户名或密码有误! 或者是你的用户名被禁用了!');history.go(-1);</script>"
else
set rs_up=server.CreateObject("adodb.recordset")
rs_up.open "select * from admin where userid='"&username&"'",conn,1,3
rs("gonum")=rs("gonum")+1
rs("goip")=request.ServerVariables("REMOTE_HOST")
Response.Cookies("golfqiuchang")("admin_gonum") = rs("gonum")
Response.Cookies("golfqiuchang")("admin_lasttime") = rs("lasttime")
Response.Cookies("golfqiuchang")("admin_user") = rs("userid")
rs("lasttime")=now()
rs.update
rs.close
set rs=nothing
response.Redirect"index.asp"
end if

%>

#11


设计权限:楼主是不是想这样
例子:(打个比方)

我后台左边的树为:
+新闻             (显示或者隐藏)
 -新闻查看        (显示或者隐藏)
 -新闻添加        (显示或者隐藏)
 -新闻删除        (显示或者隐藏)
+留言             (显示或者隐藏)
 -查看留言        (显示或者隐藏)
 -删除留言        (显示或者隐藏)

我们新建个管理员 在新建的时候:右边设置新管理员权限
 []新闻 []新闻查看 []新闻添加 []新闻删除
 []留言 []查看留言 []删除留言
                                            其中[]表示checkbox 或者 radio控件
我们可以通过勾选相应的[]来设置这个管理员的权限

我以前是这样子做的:
在管理员这张表里面有一个权限标识字段 里面存储的是这样的格式  a,b,c,d..........
这里面的a b c d 分别是左边树的每个栏目的唯一标识(是通过上面的勾选checkbox存入数据库的),
那么我们在显示左边树的时候就可以取这个管理员的权限字段 然后判断是否有自己的唯一标识 有的话显示 没的话隐藏
这样的话 左边的权限树就出来了 

这是我以前的设计 呵呵 希望对你有帮助。
别见笑。

#12


学习+顶

#13


我也要后台的,模块怎么划分的,发布模块的cuteeditor编辑怎么实现!!也求解释

#14


看看康盛的代码对你有帮助

#15


你的结贴率好低
'*****************************************************************************************
'函数名:ReturnPowerResult
'作  用:检查操作权限。
'参  数:ChannelID---所在系统(频道)1:新闻管理2:产品管理3:招聘管理4:用户管理5:类型管理6:采集管理7:生静管理8:网站管理9:社区管理
'返回值:允许返回true,否则返回false
'******************************************************************************************
Public Function ReturnPowerResult(ChannelID)
Dim AdminName,AdminRankID,ArticleRankID,ProductRankID,JobRankID,UserRankID,TypeRankID,CollectRankID,HtmlRankID,SystemRankID
AdminName = R(C("AdminName"))
AdminRankID = Application(AdminName & "PowerList")
If AdminName = "" Then
ReturnPowerResult = False
Exit Function
ElseIF AdminRankID = "" Then
ReturnPowerResult = False
Exit Function
ElseIf C("AdminPurview") = "1" Then    '超级管理组拥有所有权限
ReturnPowerResult = True
Exit Function
ElseIF Cint(Mid(AdminRankID,ChannelID,1)) = 1 Then
ReturnPowerResult = True
Exit Function
Else
ReturnPowerResult = False
Exit Function
End If
End Function

#16


看看代码也是一种享受

#17


谢谢啊,学习了!

#18


在管理员表格中加入一个标记 作为识别权限的
然后在相应的管理项目中查询当前管理员账号的标记
就这么简单。。。

#1


管理员表多加一个权限字段sex:
0  表示超级管理员
1  A板块管理员
2  b板块管理员
...

login.asp 设置session["sex"]=XXX,

leftTree.asp 每功能模块建一个table,
if(session["sex"]=0)
{
  all table.style.display=""
}
else
  相应的teble.style.display="none"

#2


跟楼上的补充一点,楼上的思路只是在菜单里不显示出对应的操作项,但是如果别人通过使用输入网址的形式还是可以访问对应的页面,最好还是在每个页面上加上判断的语句,例如:
<%
if session("sex")<>1 then
resposne.write("<script language=javascript>alert('对不起,你没有操作权限!');history.go(-1);</script>")
response.end
end if
%>

依此类推

#3


我这样做的。
管理菜单进行存储,每个子菜单下的所包含的页面也进行存储。
对管理人员进行分组,对组进行权限进行权限的指定(存储)。
在每页有权限与页面检查程序,不仅仅可以检查到是否有菜单的权限,还检查是否有页面访问权限。
比较复杂,但做完了管理起来很方便。

#4


能不能给个代码参考哈啊!我才学啊!

#5


这里的table怎么划分呢???

#6


就用session判断 即可!

#7


来学习一下。

#8


 string userName = this.txtName.Text.Trim();
        UserInfo userInfo=UserInfoManager.GetUserInfoByUserName(userName);
        if (userInfo == null)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "", "alert('没有该用户名!');", true);
        }
        else 
        {
            if (userInfo.UserPass.Equals(this.txtPass.Text.Trim()))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "", "alert('成功!')", true);
                Session["userInfo"] = userInfo;
                Response.Redirect("index.aspx");
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "", "alert('用户名或密码输入错误!')", true);
            }
        }


这个是登陆的,判断是否有该用户名,如果没有提示“没有该用户”,如果有判断密码是否正确,正确保存的session
你要的是权限,跟这个思路差不多,都是判断呢,当当前登录的用户权限为管理员显示所有功能,如果是普通的显示普通功能...

#9


发现自己现在很懒,都懒得动手打代码了...我回的是我自己做的思路...呵呵!

#10


这个是asp专栏啊,我以为C#呢,呵呵!!
asp手头就有一个,不过跟你要求的不大一样,不管有没有用都给你了
<%dim username,userpsw,checkcode
username=replace(trim(request("username")),"'","")
userpsw=md5(replace(trim(request("userpsw")),"'",""))
checkcode=replace(trim(request("checkcode")),"'","")
if cstr(session("getcode"))<>cstr(trim(request("checkcode"))) then
response.Write "<script LANGUAGE='javascript'>alert('请输入正确的验证码!');history.go(-1);</script>"
response.end
end if

set rs=server.createobject("adodb.recordset")
sql="select * from Admin where userid='"&username&"' and userpsw='"&userpsw&"' and pass=1"
rs.open sql,conn,1,3
if rs.bof and rs.eof then
response.write "<script LANGUAGE='javascript'>alert('对不起,您的用户名或密码有误! 或者是你的用户名被禁用了!');history.go(-1);</script>"
else
set rs_up=server.CreateObject("adodb.recordset")
rs_up.open "select * from admin where userid='"&username&"'",conn,1,3
rs("gonum")=rs("gonum")+1
rs("goip")=request.ServerVariables("REMOTE_HOST")
Response.Cookies("golfqiuchang")("admin_gonum") = rs("gonum")
Response.Cookies("golfqiuchang")("admin_lasttime") = rs("lasttime")
Response.Cookies("golfqiuchang")("admin_user") = rs("userid")
rs("lasttime")=now()
rs.update
rs.close
set rs=nothing
response.Redirect"index.asp"
end if

%>

#11


设计权限:楼主是不是想这样
例子:(打个比方)

我后台左边的树为:
+新闻             (显示或者隐藏)
 -新闻查看        (显示或者隐藏)
 -新闻添加        (显示或者隐藏)
 -新闻删除        (显示或者隐藏)
+留言             (显示或者隐藏)
 -查看留言        (显示或者隐藏)
 -删除留言        (显示或者隐藏)

我们新建个管理员 在新建的时候:右边设置新管理员权限
 []新闻 []新闻查看 []新闻添加 []新闻删除
 []留言 []查看留言 []删除留言
                                            其中[]表示checkbox 或者 radio控件
我们可以通过勾选相应的[]来设置这个管理员的权限

我以前是这样子做的:
在管理员这张表里面有一个权限标识字段 里面存储的是这样的格式  a,b,c,d..........
这里面的a b c d 分别是左边树的每个栏目的唯一标识(是通过上面的勾选checkbox存入数据库的),
那么我们在显示左边树的时候就可以取这个管理员的权限字段 然后判断是否有自己的唯一标识 有的话显示 没的话隐藏
这样的话 左边的权限树就出来了 

这是我以前的设计 呵呵 希望对你有帮助。
别见笑。

#12


学习+顶

#13


我也要后台的,模块怎么划分的,发布模块的cuteeditor编辑怎么实现!!也求解释

#14


看看康盛的代码对你有帮助

#15


你的结贴率好低
'*****************************************************************************************
'函数名:ReturnPowerResult
'作  用:检查操作权限。
'参  数:ChannelID---所在系统(频道)1:新闻管理2:产品管理3:招聘管理4:用户管理5:类型管理6:采集管理7:生静管理8:网站管理9:社区管理
'返回值:允许返回true,否则返回false
'******************************************************************************************
Public Function ReturnPowerResult(ChannelID)
Dim AdminName,AdminRankID,ArticleRankID,ProductRankID,JobRankID,UserRankID,TypeRankID,CollectRankID,HtmlRankID,SystemRankID
AdminName = R(C("AdminName"))
AdminRankID = Application(AdminName & "PowerList")
If AdminName = "" Then
ReturnPowerResult = False
Exit Function
ElseIF AdminRankID = "" Then
ReturnPowerResult = False
Exit Function
ElseIf C("AdminPurview") = "1" Then    '超级管理组拥有所有权限
ReturnPowerResult = True
Exit Function
ElseIF Cint(Mid(AdminRankID,ChannelID,1)) = 1 Then
ReturnPowerResult = True
Exit Function
Else
ReturnPowerResult = False
Exit Function
End If
End Function

#16


看看代码也是一种享受

#17


谢谢啊,学习了!

#18


在管理员表格中加入一个标记 作为识别权限的
然后在相应的管理项目中查询当前管理员账号的标记
就这么简单。。。