各位大虾,怎么控制登录用户的权限(用用户组管理权限)能说具体的最好,俺是菜鸟!(100分)

  • 主题发起人 主题发起人 SanMao
  • 开始时间 开始时间
S

SanMao

Unregistered / Unconfirmed
GUEST, unregistred user!
能自定义权限,这个....就请各位大虾多多帮手了:)
 
可以这样:
用一个表,字段有:用户名,功能名,浏览,修改,删除...等权限
用到某一功能时,到该表中查询使用该功能的具体权限
OK!
 
1、 客户端界面限制方式:
这种方式的特点是根据用户的权限用代码来设定界面中的功能对象(对Button, Menu)
Visible或是Enabled来达到权限管理的目的。这种管理方式一般用于单机或C/S版本。但客户端可能被破解。
实现的方法是将客户端的所有功能做为一个列表放到一个服务器表中,根据用户的ID
来绑定功能对象的Enabled或是Visible。
典型的例子是使用ActionList来完成这样的操作。

2、数据库服务器管理方式
这种方式的特点是使用数据库本身提供的管理功能来管理用户的权限。这种方式可用于单机、C/S或是三层结构,但这种操作方式限制较大。
操作的方法看具体数据库提供的安全管理功能

3、在中间层验证的方式
  这种方式的特点是客户端每次调用中间层的方法时都要验证是否有调用这个方法的权利。这种方式只用于三层结构的程序。
实现的方法是将所有中间层的方法做为一个表存放到服务器中,将用户ID和表中的功能绑定,当客户端调用时根据用户ID判断用户是否有访问此方法的权利。

在三层中使用3、1应当是很完美的做法。
 
如果权限是控制菜单的话,我的建议是为菜单项建立一个表
 
可以看看这个的表结构。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=958559
 
各位大虾:我还要控制数据和删除,屏闭菜单是不行的,我想也是建个表,但是不是
很清楚怎样做好一点:(
 
我以前也做过这个,具体记不清了,不过数据库结构还有点印象,大体写了一下,这里我
只控制按钮的权限,是访问按钮时来判断权限的(容易一些)。
-------------------------------------------------------------------------------
--建立组权限表,存放分配给每个组的权限
CREATE TABLE [dbo].[purview_list_assign] (
[Group_Name] [char] (10) NOT NULL ,
[module_name] [varchar] (20) NOT NULL ,
[submodule_name] [varchar] (20) NOT NULL ,
[btn_purview] [varchar] (20) NULL ,
[purview_tag] [int] NOT NULL
.
.
.
) ON [PRIMARY]

--建立系统权限表,存放所有权限(开发人员维护)
CREATE TABLE [dbo].[purview_list] (
[module_name] [varchar] (20) NOT NULL ,
[submodule_name] [varchar] (20) NOT NULL ,
[btn_purview] [varchar] (20) NULL ,
[purview_tag] [int] NULL,
[pyrview_desc] [VarChar] (500)
.
.
.
) ON [PRIMARY]
 
我也查过以前的帖子,与你们说的也差不多,不过还是要谢谢你们几位!谢谢!
 
我还是自己慢慢思考吧......
 
后退
顶部