AgileEAS.NET SOA 中間件平臺是一款基於基於敏捷並行開發思想和Microsoft .Net構件(組件)開發技術而構建的一個快速開發應用平臺。用於幫助中小型軟件企業創建一條適合市場快速變化的開發團隊,以達到節省開發成本、縮短開發時間,快速適應市場變化的目的。git
AgileEAS.NET SOA中間件平臺提供了敏捷快速開發軟件工程的最佳實踐,經過提供大量的基礎支撐功能如IOC、ORM、SOA、分佈式體系及敏捷併發開發方法所支撐的插件開發體系,以及提供了大量的實體、數據模型設計生成工具、代碼生成工具,用於幫助中小軟件開發商快速成長。程序員
AgileEAS.NET平臺充分把握目前軟件行業快速發展的新趨勢,基於敏捷並行開發、快速適應市場這樣淳樸的軟件工程實踐,採用業界普遍使用的Microsoft .Net構件(組件)開發技術實踐了這種開發思想,幫助軟件企業實現「敏捷變化、快速適合」的目標,從而幫助軟件企業在激烈的市場競爭中贏得先機並得到更高的回報。github
在AgileEAS.NET SOA5.0版本之中,AgileEAS.NET SOA平臺僅提供了基於模塊的權限管理體系,也沒有提供按鈕/子功能級別的權限控制體系。併發
有不少不少的使用者基於AgileEAS.NET SOA 中間件平臺進行應用開發的過程之中都提到這個問題,咱們也給你們提供了一些解決思路和方案,可是一直沒有在平臺之中集成和實現一套標準的按鈕/子功能權限管理功能和標準的API。app
在AgileEAS.NET SOA5.0版本發佈以前咱們實現一套按鈕/子功能級別的權限控制體系,提供了一個用於實現按鈕級權限管理功能的管理模塊及一給API接口。分佈式
在AgileEAS.NET SOA5.0版本之中,AgileEAS.NET SOA平臺僅提供了基於模塊的權限管理體系,也沒有提供按鈕/子功能級別的權限控制體系。函數
使用管理員登陸AgileEAS.NET SOA平臺WinClient容器,就會在系統管理導航組之中看到有一個「函數管理」模塊:工具
列表之中是全部的按鈕權限項目,存儲在模塊信息表之中,若是須要增長一個新的「按鈕/函數/權限項目」,使用添加功能,打開添加界面:網站
以上界面的操做會增長一個名稱爲「藥品字典打印」字的按鈕級別的權限,其權限ID爲「6a185217-34de-4fe7-9ed5-c2cc49ba432c」。ui
雙擊選中的按鈕級別的權限項,會打開「函數屬性」對話框能夠針對此函數/權限項進行受權:
受權方式同模塊級權限如出一轍,你也能夠經過帳號管理和角色管理模塊進行受權。
光提供一個管理功能仍是不夠的,還必需要提供一組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登陸,打開「藥品字典」模塊,查詢數據以後點擊「打印」按鈕:
0001不具備這個按鈕級權限項的權限,因此會提供沒有權限,咱們換0002登陸而且執行一樣的操做:
OK,能夠正常使用了,按鈕級權限演示完成。
DrugShop案例之中同步提供了本例子的權限定義和調用代碼,請你們經過AgileEAS.NET SOA中間件官方網站的最新下載欄目進行下載。
爲完善、改進和推廣AgileEAS.NET而成立了敏捷軟件工程實驗室,是一家研究、推廣和發展新技術,並致力於提供具備自主知識產權的業務基礎平臺軟件,以及基於業務基礎平臺開發的管理軟件的專業軟件提供商。主要業務是爲客戶提供軟件企業研發管理解決方案、企業管理軟件開發,以及相關的技術支持,管理及技術諮詢與培訓業務。
AgileEAS.NET SOA中間件平臺自2004年秋呱呱落地一來,我就一直在逐步完善和改進,也被應用於保險、醫療、電子商務、房地產、鐵路、教育等多個應用,但一直都是以我我的在推廣,2010年由於我辭職休息,我就想到把AgileEAS.NET推向市場,讓更多的人使用。
個人技術團隊成員都是合做多年的老朋友,由於這個平臺是免費的,因此也沒有什麼收入,都是由程序員的那種理想與信念堅持,在此我感謝一塊兒奮鬥的朋友。
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。