背景、问题与目标
页脚内容2
页脚内容1
用户权限管理设计方案
用户认证管理设计方案
1设计思路
为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。
创建用户和角色,并且指定用户角色(User—Role)和角色权限(Role—Permission)的关联关系。
Administrator具有创建用户、修改用户和删除用户的功能:存储过程CreateUserInfo(***@UserName,***@UserPwd)创建用户
信息;
存储过程ModifyUserlnfo(***@UserName,***@UserPwd)修改用户信息;
存储过程DeleteUserInfo(***@UserID)删除用户信息;
Administrator具有创建角色和删除角色的功能:
存储过程CreateRoleInfo(***@RoleName,***@RoleNote)创建角色信息;
存储过程DeleteRoleInfo(***@RoleID)删除角色信息;
3)Administrator具有建立用户和角色、角色和权限的关联关系功能:
存储过程GrantUserRole(***@UserID,***@RoleID,***@UserRoleNote)
建立用户和角色的关联关系;
存储过程DeleteUserRole(***@UserRoleID)删除用户和角色的关
联关系;
存储过程
GrantRolePermission(***@RolelD,***@PermissionlD,***@RolePermissionNote)建立角色和权限的关联关系;
存储过程DeleteRolePermission(***@RolePermissionID)删除角色
和权限的关联关系;
第三步用户(User)使用Administrator分配给的权限去使用各个系统模块。利用存储过程GetUserRole(***@UserID,***@UserRoleID
output),GetRolePermission(***@RolelD,***@Role-
-PermissinIDoutput)获得用户对模块的使用权限。
背景、问题与目标
页脚内容6
页脚内容7
当用户通过验证后,由系统自动生成一个128位的TicketID保存到用户数据库表中,建立存储过程Login(***@UserlD,***@UserPwd,***@TicketlDoutput)进行用户认证,认证通过得到一个TicketID,否则TicketID为null。其流程图如下:
背景、问题与目标
页脚内容6
页脚内容7
图1Login流程图
得到TicketID后,客户端在调用服务端方法时传递TicketID,通过存储过程JudgeTicketPermission(***@TicketlD,***@PermissionID)判断TicketID对应的用户所具有的权限,并根据其权限进行方法调用。
当用户退出系统时,建立存储过程Logout(***@UserlD)来退出系统。当用户异常退出系统时,根据最后的登陆时间(LastSignTime)确定用户的TickeID,建立存储过程ExceptionLogout(***@UserlD,***@LastSignTime)处理用户的异常退出。
图2Logout流程图
WebService可以采用SoapHeader中写入TicketID来使得TicketID从客户端传递给服务端。.NetRemoting可以采用CallContext类来实现TicketID从客户端传递给服务端。
2数据库设计
图3数据库关系图
2・2・1用户表(Static_User)
Static_User
Static_User
字段名
详细解释
类型
备注
UserID
路线编号
varchar(2
0)
PK
UserName
用户名称
varchar(2
0)
UserPwd
用户密码
varchar(2
0)
LastSignTime
最后登陆时
间
datatime
SignState
用户登陆状
态标记
int
TickeID
验证票记录
varchar(1
背景、问题与目标
背景、问题与目标
编号
28)
2・2・2角色表(Static_Role)
Static_Role
Static_User字段名
详细解释
类型
备注
RolelD
角色编号
varchar(2
0)
PK
RoleName
角色名称
varchar(2
0)
RoleN
用户权限管理设计方案 来自淘豆网m.daumloan.com转载请标明出处.