权限设计模型

上传人:hs****ma 文档编号:552744271 上传时间:2023-08-07 格式:DOC 页数:36 大小:528KB
返回 下载 相关 举报
权限设计模型_第1页
第1页 / 共36页
权限设计模型_第2页
第2页 / 共36页
权限设计模型_第3页
第3页 / 共36页
权限设计模型_第4页
第4页 / 共36页
权限设计模型_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《权限设计模型》由会员分享,可在线阅读,更多相关《权限设计模型(36页珍藏版)》请在金锄头文库上搜索。

1、逸群中间业务平台权限设计时模型 版本: V1.0 文档类别: 正式开发设计文档 密级: AA技术设计文档编写人:周存杰2007年9月30日星期日第一章 程序集授权模型(中间件)41.1需求概述41.2 界面51.3 数据库设计51.4 保存模式61.5 代码设计61.5.1 需求描述61.5.3代码接口61.5.4 非接口代码81.5.5 代码实现规范9第二章 TREE授权模型(中间件)102.1 需求概述102.2界面布局112.3 授权122.4建议132.5 代码设计132.5.1 代码文档132.5.2代码接口14第三章 业务类型授权模型(中间件)143.1 需求概述143.2 开发方

2、案14第四章 业务授权模型(中间件)154.1 需求概述154.2 开发方案15第五章 动作授权165.1 需求概述165.2 界面165.3 数据库设计175.4 保存模式175.5 代码设计18第六章 表授权模型(中间件)206.1 需求概述206.2 开发方案21第7章 列授权模型(中间件)217.1 需求概述216.2 开发方案21第八章 业务冲突模型(中间件)228.1 需求概述228.2 界面225.3 数据库设计225.4 保存模式235.5 代码设计23第九章 行授权模型(中间件)279.1 需求概述279.1.1 特定表基本授权279.1.2 参照授权279.1.3泛授权28

3、9.1.4 需求总结289.2 行权限设计思路299.3 主界面设计309.4 数据库设计305.4 保存模式315.5 代码设计31开发顺序:TREE授权模型业务类型业务授权表授权列授权程序集业务冲突动作授权行授权第一章 程序集授权模型(中间件)1.1需求概述作为平台权限的最基础的授权,授权对象(包括单位、部门、岗位、角色、用户)能使用哪些程序集,不能使用哪些程序集,应该有一个权限配置,作为程序集权限,默认的情况下,应该都有权使用,特别设置后,才无权使用。对于一个业务模型,在激活前,如果发现当前用户无权使用该程序集(比如DLL),那么就应提示无权加载。这能解决一些模块的拆分问题,使我们的程序

4、具有可伸缩性,可以通过运行时配置,来组装一套软件,甚至可以租赁模块,对于平台有一定意义。1.2 界面图1-1如图1-1所示,是程序集授权界面,C处为授权对象树,树名称为“AUTHOBJ”。D处为程序集树,树名称为ASSEMBLY。当C处选中特定节点时,A处显示该节点的文本。B处为两个单选按钮,指示是对设计器的授权还是对运行时程序集的授权。1.3 数据库设计SYS_ASSEMBLYAUTH,程序集授权表位置:系统表系统权限表新平台程序集权限表数据描述:AUTHTYPEFLAG:授权对象类型,C树选中节点的TypeFlag-IAUTHOBJ:授权对象的值,C树选中节点的Value- IITYPEF

5、ALG:程序集标记,D树选中节点的Value-IIIASSTYPE:程序集类型,1为设计器,2为运行时,根据B处的值设置该字段的值。-IV1.4 保存模式 根据AUTHTYPEFLAG、AUTHOBJ值AND条件先从数据库删除再添加。1.5 代码设计1.5.1 需求描述我们的程序不但可以当作业务模型来做,而且还要能够当作控件(中间件)来使用,所以,应当公开一些属性、方法、事件等,以支持当作控件时使用。1.5.3代码接口 从ITreeLoad接口继承,实现ITreeLoad接口,该接口在IInterfaces.cs,新平台接口项目获取最新即可得到。(1) TreeName 属性,D树名称,当作控

6、件时,可以通过代码设置该属性(2) TreeDesciption 属性,D树名称描述,好记的名称。(3) 加载树之前激活该事件 event TreeLoadingHanler TreeLoading;(4) 加载树之后激活该事件 event TreeLoadedHanler TreeLoaded;(5) 调用该函数,激活TreeLoading事件 void OnTreeLoading(object sender, TreeArgs e);(6) 调用该函数,jihuoTreeLoaded事件 void OnTreeLoaded(object sender, TreeArgs e);(7) 加载

7、树 void LoadTree(); 该函数第一行,调用OnTreeLoading方法激活事件TreeLoading事件,如果事件参数e的Handled值为true,不再执行LoadTree函数以下代码。 在执行该函数加载完成树后,调用OnTreeLoaded方法激活事件TreeLoaded事件,如果事件参数e的Handled值为true,不再执行LoadTree函数以下代码 作为中间件时,用户使用TreeLoading事件完成自定义加载,把事件参数的Hanled值设置为true,这样,就使用用户自己的代码来加载树了。代码实现结构如下所示: public void LoadTree() Tre

8、eArgs e = new TreeArgs(); e.CurrentTree = this.FunctionTree; e.SelectedNode = this.FunctionTree.SelectedNode; OnTreeLoading(this.FunctionTree, e); if(e.Handled) return; /* * 在以下部分书写代码加载TREE */ /. /. /. e = new TreeArgs(); e.CurrentTree = this.FunctionTree; e.SelectedNode = this.FunctionTree.Selected

9、Node; OnTreeLoaded(this.FunctionTree, e); if (e.Handled) return; 1.5.4 非接口代码bool _ISRuntime=false;Public bool ISRuntimegetreturn _ISRuntime;set _ISRuntime=value; 属性描述,是否为运行时,如果该属性为true,ASSTYPE为2,否则ASSTYPE为1。1.5.5 代码实现规范注意,在实现事件时,要使用AddHandler和RemoveHandler来实现,示例: object TreeLoadedObj = new object();

10、 public event TreeLoadedHanler TreeLoaded add this.Events.AddHandler(TreeLoadedObj, value); remove this.Events.RemoveHandler(TreeLoadedObj, value); object TreeLoadingObj = new object(); public event TreeLoadingHanler TreeLoading add this.Events.AddHandler(TreeLoadingObj,value); remove this.Events.Re

11、moveHandler(TreeLoadingObj, value); public void OnTreeLoaded(object sender, TreeArgs e) TreeLoadedHanler h = (TreeLoadedHanler)this.EventsTreeLoadedObj; if (h != null) h(sender, e); public void OnTreeLoading(object sender, TreeArgs e) TreeLoadingHanler h = (TreeLoadingHanler)this.EventsTreeLoadingObj; if (h != null) h(sender, e);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号