《用户权限管理》------架构设计方案
《用户权限管理》------架构设计方案
l 项目名称: “用户权限管理”
l 项目输出类型: 动态连接库(.dll 文件) ----需要.NET 4.0 客房端支持
l 用于管理用户和配置用户权限与及应用模块的控制。(支持多数据库连接,可扩展)
l 主要业务逻辑:
A:操作业务逻辑: “添加”------“修改”------“删除”------“查看”。
B:数据库业务逻辑: “插入”------“更新“-------”删除“------”选择“。
1.
用户与数据库对应逻辑:
用户 数据库
添加----------------------------------------------------------à插入
修改----------------------------------------------------------à更新
删除----------------------------------------------------------à删除
查看----------------------------------------------------------à选择
2 用户架构模式:
A. 接口模式
B. 抽象模式
2.
项目主要有两个超类:“用户操作“和”数据库操作“。
接口模式如下:
Public Interface
IOperate Public
Interface ISqlOperate
{ {
Public Void Add ( Guid ID
) Public Void Insert ( string Sqlcommandstring )
Public Void Modify ( Guid ID ) Public Void Modify ( string Sqlcommandstring )
Public Void Delete ( Guid ID ) Public Void Delete ( string Sqlcommandstring )
Public Void View ( Guid ID ) Public Void View ( string Sqlcommandstring )
} }
抽象模式如下:
Public Abstract
class Operate Public
Abstract class SqlOperate
{
{
Public Void Add ( Guid ID
) Public Void Insert ( string Sqlcommandstring )
Public Void Modify ( Guid ID ) Public Void Modify ( string Sqlcommandstring )
Public Void Delete ( Guid ID ) Public Void Delete ( string Sqlcommandstring )
Public Void View ( Guid ID ) Public Void View ( string Sqlcommandstring )
} }
用户类,部门类,组别类,角色类,权限类,模块类都从这它们派生,并继承所有方法。
(注: 派生类只能一个基类,但可拥有多个接口。
如: public
myClass :Operate 和 public myClass :
IOperate,ISqlOperate
接口不提供方法的实现,派生类需自己实现。抽象类可实现非抽象方法,但抽象类中的抽象方法必需同派生类来实现)
3. 对象的枚举:
用户类型的枚举:
权限类型的枚举:
Public enum
UserTypes
Public enum RightsTypes
{
{
User = 0, None = 0 ,
Administrator = 1,
AllRights = 1,
}
Add = 2.
Delete = 3,
Modify = 4 ,
View = 5,
}
2,3,4,5 为单一权限的开户,1为开启所有权限,0为禁用所有权限。
当用户的所有权限被禁用时,该用户的所有模块的访问权也被禁用。
在创建用户时进行用户权限的分配,
Administrator ========== AllRights;
User ========== None(默认值); 管理员可对其开启相关权限。
3.
用户与模块间关系。
模块1
---------------------à 只对管理员开启 (管理员)
用户-------------------à 模块 模块2
---------------------à 对所有用户开启 (管理员,用户)
模块3
---------------------à 对所有用户开启 (管理员,用户)
当用户为管理员时,系统自动开启 模块1,模块2和模块3,当为普通用户时只开启模块1和2。
秋式开源团队-----WINFORM开发小驵----铁公鸡-权 编写