惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
T
Threat Research - Cisco Blogs
H
Hacker News: Front Page
N
News and Events Feed by Topic
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
K
Kaspersky official blog
Forbes - Security
Forbes - Security
Webroot Blog
Webroot Blog
Schneier on Security
Schneier on Security
P
Privacy & Cybersecurity Law Blog
H
Heimdal Security Blog
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
V
Vulnerabilities – Threatpost
T
Tenable Blog
T
Tailwind CSS Blog
P
Privacy International News Feed
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
博客园 - Franky
Hacker News: Ask HN
Hacker News: Ask HN
Jina AI
Jina AI
C
Cybersecurity and Infrastructure Security Agency CISA
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
雷峰网
雷峰网
Vercel News
Vercel News
A
About on SuperTechFans
爱范儿
爱范儿
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
The Last Watchdog
The Last Watchdog
Engineering at Meta
Engineering at Meta
Spread Privacy
Spread Privacy
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 司徒正美
量子位
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Martin Fowler
Martin Fowler
Project Zero
Project Zero

博客园 - 魏琼东

基于自然语言处理技术的智能电子病历系统 重写AgileEAS.NET SOA 中间件平台账号密码的加密算法 基于AgileEAS.NET SOA 中间件领域模型数据器快速打造自己的代码生成器 AgileEAS.NET SOA 中间件Web运行容器管理功能已全部开源,欢迎大家下载、使用、反馈 centos+scala2.11.4+hadoop2.3+spark1.3.1环境搭建 本人为巨杉数据库(开源NoSQL)写的C#驱动,支持Linq,全部开源,已提交github AgileEAS.NET SOA中间件平台更新日志 2015-04-28 分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载 分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载 3小时搞定一个简单的MIS系统案例Northwind,有视频、有源代码下载、有真相 MIS系统开发利器,实施、维护人员自定义报表的福音,AgileEAS.NET SOA平台动态报表指南 使用Lua脚本语言开发出高扩展性的系统,AgileEAS.NET SOA中间件Lua脚本引擎介绍 高并发应用场景下的负载均衡与故障转移实践,AgileEAS.NET SOA 负载均衡介绍与实践 MIS系统开发利器,快速的字典录入解决方案,另类的、可管理的.NET DataWindow 犀利的报表系统,发票据与报表开发的快速利器,AgileEAS.NET SOA中间件GReport使用指南 拉风的服务器监控工具,随时掌握服务器动态,AgileEAS.NET SOA 平台服务器监控工具集介绍 使用DotNetBar制作漂亮的WinFrom界面,自定义AgileEAS.NET SOA平台WinClient主界面 基于AgileEAS.NET SOA 平台SAAS架构技术的开源分销ERP系统-SmartERP.NET下载配置说明 AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置
WinForm/MIS项目开发之中按钮级权限实践
魏琼东 · 2014-03-11 · via 博客园 - 魏琼东

一、前言

     AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。

     AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。

     AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。

二、关于按钮级权限

     在AgileEAS.NET SOA5.0版本之中,AgileEAS.NET SOA平台仅提供了基于模块的权限管理体系,也没有提供按钮/子功能级别的权限控制体系。

     有很多很多的使用者基于AgileEAS.NET SOA 中间件平台进行应用开发的过程之中都提到这个问题,我们也给大家提供了一些解决思路和方案,但是一直没有在平台之中集成和实现一套标准的按钮/子功能权限管理功能和标准的API。

     在AgileEAS.NET SOA5.0版本发布之前我们实现一套按钮/子功能级别的权限控制体系,提供了一个用于实现按钮级权限管理功能的管理模块及一给API接口。

三、按钮级权限管理

     在AgileEAS.NET SOA5.0版本之中,AgileEAS.NET SOA平台仅提供了基于模块的权限管理体系,也没有提供按钮/子功能级别的权限控制体系。

     使用管理员登录AgileEAS.NET SOA平台WinClient容器,就会在系统管理导航组之中看到有一个“函数管理”模块:

K[NB%4~6JG(QRD4U`AC{}2I

     列表之中是所有的按钮权限项目,存储在模块信息表之中,如果需要增加一个新的“按钮/函数/权限项目”,使用添加功能,打开添加界面:

_KR7294@PL~6P1F~7Y4@WZ7

     以上界面的操作会增加一个名称为“药品字典打印”字的按钮级别的权限,其权限ID为“6a185217-34de-4fe7-9ed5-c2cc49ba432c”。

     双击选中的按钮级别的权限项,会打开“函数属性”对话框可以针对此函数/权限项进行授权:

@[X])){NZARHI_PI9N}]LO3

     授权方式同模块级权限一模一样,你也可以通过账号管理和角色管理模块进行授权。

四、API及如何使用

     光提供一个管理功能还是不够的,还必须要提供一组API以供开发人员使用,AgileEAS.NET SOA中间件平台在应用程序对象(EAS.Application类的单例对象EAS.Application.Instance)上定义一个验证权限的API:

   1: //
   2: // 摘要:
   3: //     验证权限,验证当前系统登录人员是否具有某个构件的访问权限。
   4: //
   5: // 参数:
   6: //   component:
   7: //     构件Guid。
   8: //
   9: // 返回结果:
  10: //     验证通过返回True,否则返回False。
  11: bool Demand(Guid component);

     Demand方法需要传入按钮级别权限项/函数的定义ID,其他由交由平台完成。

     接下来我们在DrugShop案例案例之中的药品字典模块之中增加对“打印”按钮的权限控制,Visual Studio打开DrugShop解决方案打开“药品字典”模块插件的代码文件DrugDictList.cs,修改打印按钮的事件如下:

   1: private void tsbPrint_Click(object sender, EventArgs e)
   2: {
   3:     //验证按钮级别权限。
   4:     if (!EAS.Application.Instance.Demand(new Guid("6a185217-34de-4fe7-9ed5-c2cc49ba432c"))) 
   5:         return;
   6:  
   7:     if (this.dictList != null)
   8:     {
   9:         EAS.GReport.Controls.PrintViewDialog ViewDialog = new EAS.GReport.Controls.PrintViewDialog();
  10:         ViewDialog.ReportID = new Guid("F29C4C91-0791-4116-BE26-3A2A88F30A2A");
  11:         ViewDialog.DataObject = this.dictList;
  12:         ViewDialog.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  13:         ViewDialog.WindowState = System.Windows.Forms.FormWindowState.Maximized;
  14:         ViewDialog.ShowDialog();
  15:     }
  16: }

     这样就完成了对本权限项的调用验证。

四、执行验证

     我们编译并且启动DrugShop.Main.exe,使用0001密码sa登录,打开“药品字典”模块,查询数据之后点击“打印”按钮:

image

     0001不具有这个按钮级权限项的权限,所以会提供没有权限,我们换0002登录并且执行同样的操作:

image

     OK,可以正常使用了,按钮级权限演示完成。

     DrugShop案例之中同步提供了本例子的权限定义和调用代码,请大家通过AgileEAS.NET SOA中间件官方网站最新下载栏目进行下载。

五、联系我们

     为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。

     AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。

     我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。

团队网站:http://www.agilelab.cn

AgileEAS.NET网站:http://www.agileeas.net

官方博客:http://eastjade.cnblogs.com

github:https://github.com/agilelab/eas

QQ:47920381,AgileEAS.NET

QQ群:113723486(AgileEAS SOA 平台)/上限1000人

199463175(AgileEAS SOA 交流)/上限1000人

212867943(AgileEAS.NET研究)/上限500人

147168308(AgileEAS.NET应用)/上限500人

172060626(深度AgileEAS.NET平台)/上限500人

116773358(AgileEAS.NET 平台)/上限500人

125643764(AgileEAS.NET探讨)/上限500人

193486983(AgileEAS.NET 平台)/上限500人

邮件:james@agilelab.cn,mail.james@qq.com,

电话:18629261335。