ASP.NET基于WCF的通用权限管理系统的设计与实现(4)
时间:2017-01-06 12:42 来源:毕业论文 作者:毕业论文 点击:次
STEP 2:创建名为权限操作服务契约,其操作契约为加载菜单方法,根据用户的id加载用户权限范围内的菜单。 (2)业务逻辑 STEP 1:获取登陆用户的id,判断用户是否有特殊菜单权限?如果有则返回权限菜单项,否则转到STEP 2。 STEP 2:判断用户属于哪个角色?如果没有角色,还回null,并提示没有权限!否则,转到STEP 3。 STEP 3:判断角色中是否有特殊权限?如果有则还回菜单权限项,否则转到STEP 4。 STEP 4:判断该角色中有哪些权限组?如果没有,还回null,并提示没有权限!否则转到STEP 5。 STEP 5:根据这些权限组中权限判断是这些权限是否是菜单权限?如果是,则返回菜单权限项。 4.2.3 客户端的实现步骤描述 STEP 1:获取用户登陆的id。 STEP 2:调用服务器中的权限操作服务契约实现根据用的id动态加载菜单。 STEP 3:如果登陆用户有相关的权限,则加载菜单,否则,提示错误。 4.3 权限校验模块 4.3.1 功能描述 权限校验:用户访问每个页面之前进行权限校验,如果权限校验成功则打开请求地址URL,否则,提示错误!其权限管理界面如图4所示。 图4 权限管理界面图 4.3.2 服务端的实现步骤描述 (1)服务/数据契约设计 STEP 1:通过ORM对象关系模型从对象模型映射到数据库自动生成每个对象的数据契约,其成员包括数据库中实体对应表的字段。如角色,其对象属性包括角色自增列、角色名、角色类型、创建时间、创建人。权限组其对象属性包括权限组自增列、权限组名、权限类型等。 STEP 2:创建名为权限操作的服务契约,其操作契约为权限校验。 (2)业务逻辑 STEP 1:根据用户请求的地址URL判断是否存在权限表中?如果不存在,则返回false,否则转到STEP 2。 STEP 2:根据用户的特殊权限中是否存在请求地址的权限?如果存在,返回true,否则转到STEP 3。 STEP 3:获取该用户的所有角色,判断这些角色与权限关系表中是否存在用户请求的权限?如果存在,返回true,否则转到STEP 4。 STEP 4:获取这些角色中所有权限组,判断这些权限组与权限关系表中是否存在用户请求的权限?如果存在,返回true,否则返回false。 4.3.3 客户端的实现步骤描述 STEP 1:获取请求页面的URL地址和请求的类型。 STEP 2:调用服务器中的权限操作服务契约实现根据页面访问权限校验。 STEP 3:如果校验成功允许访问请求页面,否则,跳转到错误页面。 5. 系统测试 5.1 测试目的 基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件是否已经正确地实现了用户的要求,确立人们对软件质量的信心。确切的说,软件测试最终的目的就是为了发现错误,解决问题,完善系统,增强软件的健壮性[9]。 5.2 测试方案 目前,从测试的角度来说,大部分软件项目采用白盒测试、黑盒测试、和单元测试等测试方案[10]。 本系统在开发调试过程中采用了白盒测试,当每完成一个较大的模块时进行单元测试,以及开发完后对整个项目进行黑盒测试和功能测试达到我预期的效果。测试方案如以超级管理员admin登陆可以动态加载菜单,以及为每个用户添加权限和角色。例如为戴水平添加admin角色,然后退出系统,以戴水平账号登陆系统能够获取超级管理员角色的所有权限。 (责任编辑:qin) |