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