一、前言
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容器,就會在系統管理導航組之中看到有一個“函數管理”模塊:
列表之中是所有的按鈕權限項目,存儲在模塊信息表之中,如果需要增加一個新的“按鈕/函數/權限項目”,使用添加功能,打開添加界面:
以上界面的操作會增加一個名稱為“葯品字典打印”字的按鈕級別的權限,其權限ID為“6a185217-34de-4fe7-9ed5-c2cc49ba432c”。
雙擊選中的按鈕級別的權限項,會打開“函數屬性”對話框可以針對此函數/權限項進行授權:
授權方式同模塊級權限一模一樣,你也可以通過賬號管理和角色管理模塊進行授權。
四、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登錄,打開“葯品字典”模塊,查詢數據之后點擊“打印”按鈕:
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。