权限管理的设计和实现(含演示和原代码)[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 zhangking 的 blog

    权限管理的核心,就是对不同权限的用户,分配管理对应权限的资源。

    本例以一个网站栏目后台管理模块(资源)的权限管理为例,实现了不同用户的权限管理。

    数据库设计:

    帐户信息表:
      f_i_autoid     自动编码(主键)
      f_i_orderid
      f_accountid    帐户编码
      f_accountname  帐户    (外键)
      f_password     密码
      f_accounttype
      f_username
      f_remark
      f_datetime


      栏目信息表:
      f_i_autoid    自动编码(主键)
      f_i_orderid
      f_lanmuid     栏目编码
      f_lanmuname   栏目    (外键)
      f_ishidden
      f_remark
      f_datetime


      权限表:
      f_i_autoid    自动编码(主键)
      f_accountname 帐户    (外键)
      f_lanmuname   栏目    (外键)
      f_remark
      f_datetime

    通过权限表的 f_accountname 帐户(外键)和 f_lanmuname 栏目(外键)把帐户信息表
    和栏目信息表联系起来,通过给“帐户”分配“栏目”,或者给“栏目”分配“帐户”,使帐户和栏目建立关系(可以是“一对多”“多对一”或者“多对多”)。

    然后以当前登陆的帐户为基准,在权限表中查找其可管理的栏目(资源)。

    本例实现了一个用户对多栏目的管理(但是一个栏目只能被一个用户管理 - 这个通过程序代码的约束来实现)。

    以下是部分代码:
<% option explicit %>
<!-- #include file="./globals.inc" -->
<!-- #include file="./connects.inc" -->

<html>
<head>
  <title>编辑权限</title>
  <link href="./style/style.css" rel="stylesheet" type="text/css">
  <meta http-equiv="content-type" content="text/html; charset=gb2312">
  <meta http-equiv="page-enter" content="blendtrans(duration=1.0)">
  <meta http-equiv="page-exit" content="blendtrans(duration=1.0)">
  <script language="javascript">
    function openwin(url, l, t, w ,h)
    {open(url,'','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width='+ w +',height='+ h +',left='+ l +',top='+ t);}

    function check_and_submit(frm)
    {
      selectall(frm.selecteditem);
      frm.submit();
    }
  </script>
</head>

<body topmargin=20 leftmargin=0 background="../images/bg.gif">

<%
  dim ssql, rs1, rs2, rs3, currentaccount

  currentaccount = request("currentaccount")
%>

<form name="frm1" id="frm1" method="post" action="save.asp">
<input name="allowsubmit" type="hidden" value="ok">

<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr height=30>
    <td colspan=3>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      帐号信息:
        <input name="accountname" type="hidden" value="<%=currentaccount%>">
        <%
          ssql = "select * from tabaccountinfo where f_accountname='" & currentaccount & "'"
          set rs1 = server.createobject("adodb.recordset")
          rs1.open ssql, sconn, 1, 1
          if rs1.eof and rs1.bof then
            response.write("没有取得该用户的信息。")

本文关键:权限管理的设计和实现(含演示和原代码)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top