權(quán)限管理系統(tǒng)的重要特性總結(jié):
1)
高度集成
的權(quán)限系統(tǒng)、獨立模塊,能快速整合使用。
2) 符合權(quán)限的國際通用標準,基于
RBAC
(基于角色的訪問控制)的角色權(quán)限控制。
3)
多數(shù)據(jù)庫架構(gòu)支持
,內(nèi)置支持SqlServer、Oracle、MySql、SQLite、Access數(shù)據(jù)庫。
4) 用戶管理基于
分級管理理念
,集團分子公司、事業(yè)單位處室/局級可獨立管理人員/角色等數(shù)據(jù)。
5) 用戶接入的各種應(yīng)用系統(tǒng),均可實現(xiàn)用戶
登陸日志、操作日志
的記錄。
6) 管理員可以控制登陸用戶的
黑白名單列表
,實現(xiàn)嚴格的登陸控制管理。
7) 權(quán)限系統(tǒng)也是基于
《Winform開發(fā)框架》的成熟架構(gòu)
,穩(wěn)定高效、更易使用和理解。
8) 權(quán)限管理系統(tǒng)
文檔齊全、完善
的應(yīng)用支持和集成項目經(jīng)驗,開發(fā)項目
更有保證
。
權(quán)限管理系統(tǒng)說明:
《Winform開發(fā)框架》、《WCF開發(fā)框架》和《混合式開發(fā)框架》三個框架是我們經(jīng)過多年的項目積累,吸收眾多框架產(chǎn)品客戶的寶貴意見,反復(fù)提煉優(yōu)化而成的。在這幾款開發(fā)框架中,我都應(yīng)用到了一個《通用的權(quán)限管理系統(tǒng)》(簡稱權(quán)限管理系統(tǒng)),這個作為一個獨立的系統(tǒng)模塊,但又可以整合到所有的框架產(chǎn)品和項目中,實現(xiàn)快速的權(quán)限管理和控制。
權(quán)限的分配和管理,基本上是每個業(yè)務(wù)系統(tǒng)需要考慮的東西,而這些常用的東西,在整個開發(fā)框架中,把它作為一個獨立的模塊,既方便維護管理,也留有接口很容易進行集成,這樣能夠在項目中反復(fù)進行使用。
權(quán)限管理系統(tǒng)主要的功能包括有:用戶管理、組織機構(gòu)管理、功能管理、角色管理和權(quán)限分配管理、菜單管理、系統(tǒng)類型管理、登錄日志管理、操作日志管理、系統(tǒng)黑白名單管理等功能模塊。對于每新增一個系統(tǒng),我們只需要在權(quán)限管理系統(tǒng)中增加一個系統(tǒng)類型定義,以及相關(guān)的功能、菜單數(shù)據(jù)即可,非常方便管理。
在權(quán)限管理系統(tǒng)登錄界面輸入賬號和密碼后(默認賬號 admin ,密碼為空),即可進入權(quán)限管理系統(tǒng)的主界面,權(quán)限管理系統(tǒng)主要的功能包括有:用戶管理、組織機構(gòu)管理、功能管理、角色管理和權(quán)限分配管理、菜單管理、系統(tǒng)類型管理、登錄日志管理、操作日志管理、系統(tǒng)黑白名單管理等功能模塊。
權(quán)限管理系統(tǒng)的用戶管理是基于分級管理理念,集團分子公司、事業(yè)單位處室/局級可獨立管理人員/角色等信息。
系統(tǒng)分了兩級管理員用戶:超級管理員和公司管理員。超級管理員可以管理整個集團或者整個系統(tǒng)的人員和相關(guān)信息(包括組織機構(gòu)、角色、登陸日志、操作日志等信息的分級);公司管理員可以管理分子公司、事業(yè)單位處室/局級這樣的組織機構(gòu)的人員和相關(guān)信息。
分級管理組織機構(gòu)、角色、用戶等相關(guān)數(shù)據(jù),能夠減少管理員的相關(guān)工作,提高工作效率,并能增強權(quán)限管理系統(tǒng)對權(quán)限的控制和資源分配等管理,提高用戶的認同感。
在系統(tǒng)用戶信息模塊里面,可以在組織機構(gòu)樹右鍵“新建”或者“新建”按鈕上,觸發(fā)彈出新建用戶的操作,如下界面所示。
在新建用戶的界面上,輸入必須的用戶名、真實姓名、所屬公司、默認機構(gòu)/部門等信息,其他信息可選輸入。用戶的所屬機構(gòu)、所屬角色、可操作功能,在后面的介紹操作中進行分配管理,新建用戶不需要管理這些信息。
在用戶基本信息界面里面,用戶“所屬公司”,是一個下拉的樹形列表,里面按照組織機構(gòu)的分級進行展示公司信息,如下所示。
“默認機構(gòu)/部門”是根據(jù)用戶選擇的“所屬公司”進行過濾的,根據(jù)用戶選擇所屬公司,列出該公司下的所有組織機構(gòu)樹形列表供選擇,如下所示。
編輯用戶界面和新建用戶界面顯示,在界面上顯示已經(jīng)錄入的用戶信息和用戶的關(guān)系信息,包括所屬機構(gòu)、所屬角色、可操作功能等。
為了快速錄入系統(tǒng)用戶信息,權(quán)限管理系統(tǒng)提供Excel的數(shù)據(jù)批量導(dǎo)入操作,如下所示。
在用戶管理列表的“導(dǎo)入”操作按鈕中觸發(fā),彈出一個通用的Excel數(shù)據(jù)導(dǎo)入界面,里面指定了導(dǎo)入數(shù)據(jù)的“Excel模板”,用戶根據(jù)模板字段列輸入相關(guān)的信息,然后通過“瀏覽”按鈕觸發(fā)數(shù)據(jù)的顯示,如果確認無誤,即可進行“保存數(shù)據(jù)”的操作。
權(quán)限系統(tǒng)的用戶數(shù)據(jù),也可以通過“導(dǎo)出”按鈕進行用戶數(shù)據(jù)的導(dǎo)出操作,如下所示。
用戶的查詢,可以通過按組織機構(gòu)查看、按角色查看和根據(jù)查詢條件查詢,前兩者通過樹形列表,方便用戶快速查詢用戶,由于用戶是分級管理,因此不同的公司管理員,看到的組織機構(gòu)和角色數(shù)據(jù)有所不同,他們可以管理自己管轄內(nèi)的用戶數(shù)據(jù)。
1) 按組織機構(gòu)查詢
2) 按角色查詢
3) 根據(jù)查詢條件查詢
權(quán)限管理系統(tǒng)中的組織機構(gòu)列表,是一個層級的樹形列表,基本的節(jié)點可以分為集團、公司、部門和工作組這幾個級別,在組織機構(gòu)樹中選擇機構(gòu)后,界面中間及右邊區(qū)域會顯示詳細的組織機構(gòu)信息和相關(guān)數(shù)據(jù)。
新建組織機構(gòu),可以在左邊的樹形列表上的右鍵菜單上操作,也可以在頂部的“添加”按鈕上進行操作。新建組織機構(gòu)信息,處在同一個界面里面,用戶輸入相關(guān)數(shù)據(jù)保存即可。
組織機構(gòu)可以通過“包含用戶”的方式,把系統(tǒng)其他部門的用戶納入到該部門管理范疇中,這樣,如果分配給該部門的權(quán)限,自動會授權(quán)給這些包含進來的用戶,實現(xiàn)用戶權(quán)限的累加管理。
單擊“包含用戶”界面的“添加”按鈕,彈出一個“選擇人員”的對話框,對話框界面里的用戶數(shù)據(jù)是根據(jù)部門和角色進行分類的,用戶可以在左邊的樹列表中快速查看指定范疇內(nèi)的用戶數(shù)據(jù),右邊的列表中有勾選項目,勾選后單擊“添加選擇”即可添加到底部的用戶選擇區(qū)域,也可以在選擇區(qū)域里面刪除指定用戶選擇,界面如下所示。
角色是權(quán)限系統(tǒng)管理里面最為重要的部分,整個系統(tǒng)符合權(quán)限的國際通用標準,基于RBAC(基于角色的訪問控制)的角色權(quán)限控制,這樣和權(quán)限相關(guān)的信息,都是通過角色進行關(guān)聯(lián),因此角色還需要管理和用戶之間的關(guān)系、和組織機構(gòu)之間的關(guān)系、和可操作功能之間的關(guān)系等等。
和組織機構(gòu)包含用戶功能一樣,彈出選擇用戶對話框,選擇對應(yīng)的用戶列表信息。
系統(tǒng)類型定義,是用作區(qū)分一個業(yè)務(wù)應(yīng)用系統(tǒng)的標識,權(quán)限系統(tǒng)支持多個業(yè)務(wù)應(yīng)用系統(tǒng)的繼承,雖然默認是一個,但是可以根據(jù)需要進行擴充,使得權(quán)限管理系統(tǒng)管理的范疇更大,實現(xiàn)所有業(yè)務(wù)系統(tǒng)共享一個權(quán)限管理系統(tǒng)的布局。
功能管理,是業(yè)務(wù)應(yīng)用系統(tǒng)的權(quán)限控制最小單元,可以用作控制系統(tǒng)的按鈕、菜單等界面元素,也可以用作控制顯示或隱藏的某些字段的操作。
為了方便一次性添加多個功能單元,可以通過“批量添加”操作進行功能的批量添加,批量添加界面如下所示。
一般Winform程序中,菜單都是直接寫在主程序中的,這樣對于經(jīng)常性修改和維護菜單的相關(guān)信息,可能有所不便,而且對于插件化的系統(tǒng)應(yīng)用,新增菜單是常見的事情,這樣就需要對菜單進行動態(tài)配置管理了,通過后臺菜單的配置和權(quán)限的指定,能夠?qū)崿F(xiàn)菜單的動態(tài)加載和權(quán)限驗證。
因此菜單也是權(quán)限分配的一部分,為了有效管理菜單資源,我們把菜單放到權(quán)限管理系統(tǒng)中進行管理控制,可根據(jù)用戶權(quán)限進行動態(tài)控制顯示。
設(shè)定好菜單的圖標和Winform窗體類型,就能在Winform框架中動態(tài)構(gòu)建菜單信息了。菜單的圖表放置在系統(tǒng)的相對目錄下即可。
新建或者編輯的菜單界面如下所示,除了需要輸入“顯示名稱”外,還需要選擇“上級菜單”,如果菜單需要進行權(quán)限控制,那么在“功能控件ID”輸入需要的控制鍵即可,如下紅色框選部分。
菜單的“上級菜單”是一個下拉的樹狀列表,方便顯示層次關(guān)系并進行選擇。
在一般的權(quán)限系統(tǒng)里面,可能經(jīng)常會看到系統(tǒng)的黑名單或者白名單的攔截功能。在一般 權(quán)限系統(tǒng)里面,常見的黑名單就是禁止用戶在某些IP上登錄系統(tǒng),白名單就是允許用戶只在某些IP上登錄系統(tǒng)。本隨筆主要介紹在我的權(quán)限系統(tǒng)里面,如何實現(xiàn)這個黑白名單的功能,以及介紹在其中應(yīng)用到的IP對比操作,IP段判斷等操作代碼。
要完成黑名單的攔截和白名單的放行,我們需要進行名單的配置操作,我們把相關(guān)的配置放到列表里面進行展示,可以添加多個黑名單或者白名單,如下界面所示。
可以在黑白名單列表上單擊“新建”按鈕進行添加一條記錄,或者在已有記錄上雙擊黑白名單可以進行編輯,界面如下所示。
通過“添加用戶”按鈕,在彈出的選擇人員界面中,指定黑白名單的人員列表即可。
在很多業(yè)務(wù)系統(tǒng)里面,數(shù)據(jù)是很敏感的,特別對于一些增加、修改、刪除等關(guān)鍵的操作,如果能在框架層面的支持基礎(chǔ)上,以最少的代碼實現(xiàn)重要表的日志記錄,那么是一件非常值得慶賀的事情,也能夠為我們客戶的數(shù)據(jù)提供重要的日志跟蹤,甚至是數(shù)據(jù)恢復(fù)的參考。
通過權(quán)限管理系統(tǒng)的支持和《Winform開發(fā)框架》的底層支持,業(yè)務(wù)系統(tǒng)模塊,只需要通過一行代碼就能實現(xiàn)業(yè)務(wù)表的日志記錄,這對我們開發(fā)新的業(yè)務(wù)模塊,效率可以提高很多,同時也能給客戶提供更好的數(shù)據(jù)支持服務(wù)。通過在權(quán)限系統(tǒng)模塊里面配置參數(shù)和顯示操作日志記錄,能夠給業(yè)務(wù)開發(fā)提供基礎(chǔ)性的開發(fā)框架支持。
在操作日志的參數(shù)配置列表里面,我們可以添加一些業(yè)務(wù)表操作日志配置,然后通過在開發(fā)時刻,一行代碼指定記錄日志操作,即可實現(xiàn)操作日志的記錄。
1) 修改記錄的操作日志
2) 增加記錄的操作日志
實 現(xiàn)代碼就是調(diào)用該程序集的接口API啟動權(quán)限系統(tǒng)的登陸界面,如下所示。
權(quán)限系統(tǒng)和其他框架一樣,提供基于多種數(shù)據(jù)庫(SqlServer/Oracle/MySql/SQLite/Access等數(shù)據(jù)庫)的整合支持。雖然我們在實際項目中,一般采用一種數(shù)據(jù)庫進行處理,但是不同的項目,采用的數(shù)據(jù)庫類型可能不同,本W(wǎng)inform開發(fā)框架為了方便演示和擴展的需要,內(nèi)置支持了SqlServer/Oracle/MySql/ SQLite /Access,更多的數(shù)據(jù)庫,也可以通過擴展數(shù)據(jù)庫訪問基類的方式進行更多數(shù)據(jù)庫的支持。
整個權(quán)限管理系統(tǒng)的數(shù)據(jù)庫訪問,能夠手動配置數(shù)據(jù)庫類型,對于同一種數(shù)據(jù)庫,也可以把數(shù)據(jù)存儲分開存儲,如業(yè)務(wù)數(shù)據(jù)存儲在一個數(shù)據(jù)庫,權(quán)限管理控制存儲在另外一個數(shù)據(jù)庫這種方式。
支持郵箱:wuhuacong@163.com 伍華聰 QQ:6966254 我的技術(shù)博客