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