一个员工表Emp(EmpID,EmpName),一个员工_权限表 Emp_Rules(EmpID,Rules)
其中Rules中存放类似 1001,1002,1020,1022,2050,2051,2052,2053,2054在主界面上放置 按钮,按钮的 tag 是 1001,1002,1003,1004,1005,1020,1021,102....我的想法是,把员工(EmpID)所对应能使用的功能(按钮)的tag存进数据库中,以","分隔创建主界面时,遍历主界面上的button,如果此员工的Rules中包含此按钮的tag,则设置此按钮为 Enabled.否则设为 Disabled。这样处理权限问题的利弊是怎样的?

解决方案 »

  1.   

    显然存在严重的隐患,现在随便找一个软件,就可以把按钮的Enabled设置成True
      

  2.   

    顺便提一个句闲话
    To 楼主
    >>如果后面没有出现<%Script,则表示入侵成功
    如果不显示,只能表示没有作过滤,并不代表入侵成功。
      

  3.   

    楼上的猩猩,我开个玩笑而已,明摆着知道自己不会入侵CSDN的,就算入侵成功也不会S到贴在这里。
      

  4.   

    一个用戶表Emp(userID,userName,password),
    一個程序代號表prog(progid,progname)
    一个员工_权限表 user_rights(userID,progid,allow_add,allow_query,allow_mod,allow_del,allow_price,allow_print,allow_copy...)(有必要的話可以再加更多的權限字段)界面上有新增,修改,刪除,查詢,打印這些按鈕,在每一個程序formcreate 裡
    讀取數據庫,把新增,修改,刪除,查詢這些按鈕按照看這個用戶的這個程序權限,設置visible 為true或false。
    其它比如allow_price 這種權限,有的程序裡需要用到,有的則不需要。
    就單獨設置,在需要用到這個權限的程序的formcreate 裡加代碼
    比如dbedit1是顯示單價的,根據這個用戶的allow_price 值來設置是否visible------
    我是這麼做的
    至於
    回复人: kiboisme(蓝色光芒) ( ) 信誉:105 
    說的隱患...
    沒考慮這麼多...
      

  5.   

    忘了,
    其實我還有一個表group
    即群組。
    用戶表裡,每個用戶有個groupid
    權限表是針對群組的,不是針對用戶。
    user_rights(groupID,progid,allow_add,allow_query,allow_mod,allow_del,allow_price,allow_print,allow_copy...)就像windows用戶那樣子啦...
    這4個表的字段,還可以再加上一些有用的。
    比如用戶表可以加上使用期限是2000/01/01-2005/12/31這樣子。
    程序代號表還可以加上sysname表示這個程序是屬於哪個系統的(或者說哪個模塊的)
      

  6.   

    Up小样的与我想法相同。
    至于
    回复人: kiboisme(蓝色光芒) ( ) 信誉:105 
    的问题,是确实存在的。
    不过我写的ERP是自己公司用的,谁敢用工具解禁呀,公司还有政策呢,再说,我公司那些操作员也不至于聪明到用工具解开按钮的 disabled.