用户权限设计方案

上传人:z**** 文档编号:113644583 上传时间:2022-06-26 格式:DOC 页数:8 大小:101KB
收藏 版权申诉 举报 下载
用户权限设计方案_第1页
第1页 / 共8页
用户权限设计方案_第2页
第2页 / 共8页
用户权限设计方案_第3页
第3页 / 共8页
资源描述:

《用户权限设计方案》由会员分享,可在线阅读,更多相关《用户权限设计方案(8页珍藏版)》请在装配图网上搜索。

1、用户认证管理设计方案1设计思路为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库 表,并且建立之间的关系,具体实现如下。用户用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出 去了的。用户(Usei)要拥有对某种资源的权限,必须通过角色(Role)去关联。用户通常具有以下属性:编号,在系统中唯一。名称,在系统中唯一。用户I令。注释,描述用户或角色的信息。角色角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限,通常具有 以下属性:编号,在系统中唯一。名称,在系统中唯一。注释,描述角色信息权限权限指用户根据角色获得对程序某些功能的

2、操作,例如对文件的读、写、修改和删除功 能,通常具有以下属性:编号,在系统中唯一。名称,在系统中唯一。注释,描述权限信息用户与角色的关系一个用户(User)可以隶属于多个角色(Role), 个角色组也可拥有多个用户,用户 角色就是用来描述他们之间隶属关系的对彖。用户(User)通过角色(Role)关联所拥有对 某种资源的权限,例如用户(User):UserRoleLDUserIDRolelD11012202用户角色(User_Role):UserRoleNote用户“张三”被分配到角色“系统管理员”用户“李四”被分配到角色“监控人员”UserID12U serN ameU serPwd张三 李

3、四XXXXXXXXXXXX角色(Role):RolelDRoleNameRoleNote01系统管理员监控系统维护管理员02监控人员在线监控人员03调度人员调度工作人员04一般工作人员工作人员03用户“李四”被分配到角色“调度人员”从该关系表可以看出,用户所拥有的特定资源可以通过用户角色来关联。 权限与角色的关系一个角色(Rob)可以拥有多个权限(P亡emission),同样一个权限町分配给多个角色。例如角色(Role):RolelDRoleNameRoleNote01系统管理员监控系统维护管理员02监控人员在线监控人员03调度人员调度工作人员04一般工作人员工作人员权限(Permission

4、):PernussioiiIDPernussioiiNamePernussioiiNote0001增加监控允许增加监控对彖0002修改监控允许修改监控对彖0003删除监控允许删除监控对彖0004察看监控信息允许察看监控对彖角色权限(RoljPemiission):RolePernussioiiIDRoleLDPennissionlDRolePeinussionN ote1010001角色“系统管理员”具有权限“增加监控”2010002角色“系统管理员”具有权限“修改监控”3010003角色“系统管理员”具有权限“删除监控”4010004角色“系统管理员”具有权限“察看监控”5020001角色“

5、监控人员”具有权限“增加监控”6020004角色“监控人员”具有权限“察看监控”由以上例子中的角色权限关系可以看出,角色权限可以建立角色和权限之间的对应关 系。建立用户权限用户权限系统的核心由以下三部分构成:创造权限、分配权限和使用权限。第一步由Creator创造权限(Permission), Creator在设计和实现系统时会划分。利用存 储过程 CreatePennissionliifo (PennissioiiName,PeniiissioiiNote)创建权限信息,指定系 统模块具有哪些权限。第二步由系统管理员(Administrator)创建用户和角色,并且指定用户角色(UserRo

6、le) 和角色权限(RolePemiission)的关联关系。1) Administrator具有创建用户、修改用户和删除用户的功能:存储过程 CreateUserliifo (UserName,UserPwd)创建用户信息;存储过程 ModifyUseilnfo (UseiNaine,UseiPwd)修改用户信息;存储过程DeleteUserhifo (UseiID)删除用户信息:2) Administrator具有创建角色和删除角色的功能:存储过程 CreateRoleliifo (RoleName,RoleNote)创建角色信息:存储过程DeleteRoleInfo(RoleID)删除角

7、色信息;3 ) Administrator具有建立用户和角色、角色和权限的关联关系功能:存储过程 GiantUserRole (UseiID,RoleID,UserRoleNote)建立用户和角色的关 联关系;存储过程DeleteUserRole(UserRoleID)M除用户和角色的关联关系;存储过程 GiantRolePennission(RoleID,PennissionID,RolePennissioiiNote)建立 角色和权限的关联关系;存储过程DeleteRolePennission(RolePeiniissioiiID)删除角色和权限的关联关系: 第三步用户(User)使用Ad

8、imiustrator分配给的权限去使用各个系统模块。利用存储过 程 GetUserRole (UseiID, UserRoleID output) ,GetRolePerniission (RoleLD.Role- -PennissinlD output)获得用户对模块的使用权限。用户认证实现当用户通过验证后,由系统自动生成一个128位的TicketID保存到用户数据库表中, 建立存储过程Logm (UserID.UseiPwd,TicketID output)进行用户认证,认证通过得到 一个TicketID,否则TicketID为null。其流程图如下:图1 Login流程图得到Ticke

9、tID后,客户端在调用服务端方法时传递TicketID ,通过存储过程 JudgeTicketPeiniission (TicketID,PeinussionED)判断 TicketID 对应的用户所具有的权限, 并根据其权限进行方法调用。当用户退出系统时,建立存储过程Logout (UserID)来退出系统。当用户异常退出系 统时,根据最后的登陆时间(LastSignTune )确定用户的TickelD ,建立存储过程 ExceptioiiLogout (UserID,LastSignTmie)处理用户的异常退出。图2 Logout流程图WebSeivice可以采用SoapHeader中写入

10、TicketID来使得TicketID从客户端传递给服务 端。.Net Remotmg可以采用CallContext类来实现TicketID从客户端传递给服务端。2数据库设计数据库表图3数据库关系图数据库表说明用户表(Static_User)Static_UserStatic.User字段名详细解释类型 备注UserID 路线编号vaichai(20)PKUserName 用户名称 varchar(20) UserPwd 用户密码vaichai(20)LastSignTune 最后登陆时间datatuneSignState用户登陆状态标记intTickelD验证票记录编号varchar(128

11、)角色表(Static_Role)Static_Role类型 备注Static_User字段名详细解释RolelD 角色编号 varchai(20) PKRoleName 角色名称varchai(20)RoleNote 角色信息描述varchai(20)用户一角色表(Static_Us“_Role)Static_Usei_RoleStatic.User字段名详细解释类型 备注UserRolelD 用户角色编号 varchar(20) PKUserID 用户编号varchai(20)FKRolelD 角色编号varchai(20)FKUserRoleNote用户角色信息描述 varchar(20

12、)权限表(Static_Perniission)Static_PermissionStatic.User字段名详细解释类型 备注PerniissioiiID 编号 vaichai(20) PKPerniissioiiName 权 限名称 varchar(20)PerniissioiiNote 全息信息描述 varchar(20)角色一权限表(Static_Role_Perniission)Static_Role_PerniissionStatic.User字段名详细解释类型 备注RolePerniissioiiID 角色权限编号varchar(20) PKRolelD 角色编号 varchai

13、(20) FKPerniissioiiID 权限编号varchai(20) FKRolePerniissioiiNote角色权限信息描述vaichai(20)3技术概要WebSeivice SoapHeader对SQL数据库执行自定义身份验证和授权。在这种情况中,应向服务传递自定义凭据 (如用户名和密码),并让服务自己处理身份验证和授权。将额外的信息连同请求一起传递 给XML Web服务的简便方法是通过SOAP标头。为此,需要在服务中定义一个从 SOAPHeader派生的类,然后将服务的公共字段声明为该类型。这在服务的公共合同中公开, 并且当从创建代理时可由客户端使用,如下例所示:using服

14、务中的每个WebMethod都可以使用SoapHeader自定义属性定义一组关联的标头。 默认情况下,标头是必需的,但也可以定义可选标头。SoapHeader属性指定公共字段的名 称或者Client或Server类的属性(本标题中称为Headers属性)。在为输入标头调用方法 前,WebSenice设置H亡adeis属性的值:而当方法为输出标头返回时,WebSeivice检索该 值。WebMethod(Descnption=MTlus metliod lequues a custom soap header set by the caller*) SoapHeader(MsHeaderH) p

15、ublic string SecuieMethod() if (sHeader = null)return HERROR: Please supply credentials*;elsei-etuin ”USER + ;然后,客户端在调用要求标头的方法之前,直接在代理类上设置标头,如下面的示例所 示:HeaderService h = new HeaderService();AutliHeader myHeader = new AutliHeaderQ;=useinanie;=password;=myHeadei;String result =();.Net Remotiiig的安全认证方式C

16、allContext提供与执行代码路径一起传送的属性集,CallContext是类似于方法调用的 线程本地存储的专用集合对象,并提供对每个逻辑执行线程都唯一的数据槽。数据槽不在其 他逻辑线程上的调用上卞文之间共享。当CallContext沿执行代码路径往返传播并且由该路 径中的各个对彖检查时,可将对彖添加到其中。当对另一个AppDoniam中的对彖进行远程 方法调用时,CallContext类将生成一个与该远程调用一起传播的LogicalCallContext实例。 只有公开 ILogicalTlueadAffinative接丨I并存储在 CallContext中的对象被在 LogicalCa

17、llContext中传播至lj AppDoniain夕卜部。不支持此接I I的对象不在 LogicalCallContext实例中与远程方法调用一起传输。方法存储给定对象并将其与指定名称关联,方法从CallContext中检索具有指定名称的 对象。卞面的代码示例说明如何使用SetData方法将主体和标识对象传输到远程位置以进行 标识。public class Clientclass public static void MainQ Genericldentity ldent = new GenericIdentity(Eob);GenericPriiicipal prpal = new Gen

18、ericPiiiicipal(ideiit,Newstring Level!);LogicalCallContextData data =new LogicalCallContextData(prpal);retuni;aine + ” has been createdInstance # = 0* instanceNum);H亡lloS亡rviceClass。(Destroyed instance 0 ofHelloServiceClass/1, iiistaiiceNum);public String HelloMethod(Stiing name) 4详细代码设计WebSeivice代码

19、设计WebSemce端代码主要进行对数据库的操作,建立起Client操作数据库所需要的方法, 供Client的端调用。1) classUserlnfoMiigQ用户信息管理类,其中包括方法:CreateUserIiifb(stiing UserName stiiiig UseiPwd)建立用户信息,调用存储过程 CreateUserliifo (UserName,UserPwd)ModifyUserInfo(stiiiig UserName string UseiPwd)修改用户信息,调用存储过程 ModifyUserliifo (UserName,UserPwd)DeleteUserIiif

20、b()删除用户信息,调用存储过程DeleteUserlnfo(UserID)2) class User Authentic ationQ用户认证类,用来实现用户角色、权限的设置,包扌舌方法:CreatePennissionInfb(stiing PernussioiiName stimg Perniissi-onNote)建立权限信息,调用存储过程CreatePerniissioiiIiifo(PennissioiiNaine,PeniiissioiiNote)CreateRoleInfo(stiing RoleNaine strmg RoleNote)建立角色信息,调用存储过程CreateR

21、oleInfb(RoleNaine,RoleNote)DeleteRolelnfoQ删除角色信息,调用存储过程DeleteRoleliifo(RoleID)GrantUserRole(string UserID stiiiig RolelD string UserRoleNote)授予用户角色,调用 存储过程 GiaiitUserRole(UserLD、RoleID,UserRoleNote)DeleteUserRoleQ删除用户角色,调用存储过程DeleteUseiRole(UserRoleID)GrantRolePemiission(strmg RolelD string Perniiss

22、ioiiID string RolePerniissioiiNote)授 予 角 色 权 限, 调 用 存 储 过 程 GrantRolePernussion(RoleID.PeniiissionID.RolePemiissioiiNote)DeleteRolePeniussionQ删除授予的角色权限,调用存储过程DeleteRolePernnssion(RolePeniussionID)用户认证代码设计(Client端)Client端调用WebSemce方法来进行数据库访问,Client端代码设计主要实现界面的功 能,包括:权限设置、用户管理、用户授权管理和用户认证管理1) 权限设置clas

23、s PeniussioiiInfblvIiigO用户权限信息管理类,包扌舌方法:CreatePennissionIiifo()建立权限信息2) 用户管理class UserbifoMiigO用户信息管理类,包括方法:CreateUserlnfoQ建立用户信息ModifyUseiliifo()修改用户信息DeleteUserlnfoQ删除用户信息3) 用户授权管理class RolebifoMiigO角色信息管理类,包括方法:CreateRolelnfoQ建立角色信息DeleteRolelnfoQ删除角色信息classUserRoleNIiigO用户角色管理类,包括方法:GrantUseiRoleQ授予用户角色DeleteUserRoleQ删除用户角色class RolePernussioiiMiigO角色权限管理类,包括方法GrantRolePerniission()授予角色权限DeleteRolePerniissionO 删除角色权限4) 用户认证管理class Authentication()用户认证类,包括方法:Logiii(stiiiig UserName suing UserPwd)用户登陆认证,用户认证通过分配给用户一 个 TicketlD,否则 TicketID 则为 nullLogoutQ用户正常退出ExceptioiiLogout()用户异常退出

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!