天天看點

Winform開發架構之權限管理系統功能介紹

權限管理系統的重要特性總結: 

1) 高度內建的權限系統、獨立子產品,能快速整合使用。

2) 符合權限的國際通用标準,基于RBAC(基于角色的通路控制)的角色權限控制。

3) 多資料庫架構支援,内置支援SqlServer、Oracle、MySql、SQLite、Access資料庫。

4) 使用者管理基于分級管理理念,集團分子公司、事業機關處室/局級可獨立管理人員/角色等資料。

5) 使用者接入的各種應用系統,均可實作使用者登陸日志、記錄檔的記錄。

6) 管理者可以控制登陸使用者的黑白名單清單,實作嚴格的登陸控制管理。

7) 權限系統也是基于《Winform開發架構》的成熟架構,穩定高效、更易使用和了解。

8) 權限管理系統文檔齊全、完善的應用支援和內建項目經驗,開發項目更有保證。

權限管理系統說明:

《Winform開發架構》、《WCF開發架構》和《混合式開發架構》三個架構是我們經過多年的項目積累,吸收衆多架構産品客戶的寶貴意見,反複提煉優化而成的。在這幾款開發架構中,我都應用到了一個《通用的權限管理系統》(簡稱權限管理系統),這個作為一個獨立的系統子產品,但又可以整合到所有的架構産品和項目中,實作快速的權限管理和控制。

權限的配置設定和管理,基本上是每個業務系統需要考慮的東西,而這些常用的東西,在整個開發架構中,把它作為一個獨立的子產品,既友善維護管理,也留有接口很容易進行內建,這樣能夠在項目中反複進行使用。

權限管理系統主要的功能包括有:使用者管理、組織機構管理、功能管理、角色管理和權限配置設定管理、菜單管理、系統類型管理、登入日志管理、記錄檔管理、系統黑白名單管理等功能子產品。對于每新增一個系統,我們隻需要在權限管理系統中增加一個系統類型定義,以及相關的功能、菜單資料即可,非常友善管理。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

在權限管理系統登入界面輸入賬号和密碼後(預設賬号admin,密碼為空),即可進入權限管理系統的主界面,權限管理系統主要的功能包括有:使用者管理、組織機構管理、功能管理、角色管理和權限配置設定管理、菜單管理、系統類型管理、登入日志管理、記錄檔管理、系統黑白名單管理等功能子產品。

權限管理系統的使用者管理是基于分級管理理念,集團分子公司、事業機關處室/局級可獨立管理人員/角色等資訊。

系統分了兩級管理者使用者:超級管理者和公司管理者。超級管理者可以管理整個集團或者整個系統的人員和相關資訊(包括組織機構、角色、登陸日志、記錄檔等資訊的分級);公司管理者可以管理分子公司、事業機關處室/局級這樣的組織機構的人員和相關資訊。

分級管理組織機構、角色、使用者等相關資料,能夠減少管理者的相關工作,提高工作效率,并能增強權限管理系統對權限的控制和資源配置設定等管理,提高使用者的認同感。

Winform開發架構之權限管理系統功能介紹

在系統使用者資訊子產品裡面,可以在組織機構樹右鍵“建立”或者“建立”按鈕上,觸發彈出建立使用者的操作,如下界面所示。

在建立使用者的界面上,輸入必須的使用者名、真實姓名、所屬公司、預設機構/部門等資訊,其他資訊可選輸入。使用者的所屬機構、所屬角色、可操作功能,在後面的介紹操作中進行配置設定管理,建立使用者不需要管理這些資訊。

Winform開發架構之權限管理系統功能介紹

在使用者基本資訊界面裡面,使用者“所屬公司”,是一個下拉的樹形清單,裡面按照組織機構的分級進行展示公司資訊,如下所示。

Winform開發架構之權限管理系統功能介紹

“預設機構/部門”是根據使用者選擇的“所屬公司”進行過濾的,根據使用者選擇所屬公司,列出該公司下的所有組織機構樹形清單供選擇,如下所示。

Winform開發架構之權限管理系統功能介紹

編輯使用者界面和建立使用者界面顯示,在界面上顯示已經錄入的使用者資訊和使用者的關系資訊,包括所屬機構、所屬角色、可操作功能等。

為了快速錄入系統使用者資訊,權限管理系統提供Excel的資料批量導入操作,如下所示。

Winform開發架構之權限管理系統功能介紹

在使用者管理清單的“導入”操作按鈕中觸發,彈出一個通用的Excel資料導入界面,裡面指定了導入資料的“Excel模闆”,使用者根據模闆字段列輸入相關的資訊,然後通過“浏覽”按鈕觸發資料的顯示,如果确認無誤,即可進行“儲存資料”的操作。

Winform開發架構之權限管理系統功能介紹

權限系統的使用者資料,也可以通過“導出”按鈕進行使用者資料的導出操作,如下所示。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

使用者的查詢,可以通過按組織機構檢視、按角色檢視和根據查詢條件查詢,前兩者通過樹形清單,友善使用者快速查詢使用者,由于使用者是分級管理,是以不同的公司管理者,看到的組織機構和角色資料有所不同,他們可以管理自己管轄内的使用者資料。

1) 按組織機構查詢

Winform開發架構之權限管理系統功能介紹

2) 按角色查詢

Winform開發架構之權限管理系統功能介紹

3) 根據查詢條件查詢

Winform開發架構之權限管理系統功能介紹

權限管理系統中的組織機構清單,是一個層級的樹形清單,基本的節點可以分為集團、公司、部門和工作組這幾個級别,在組織機構樹中選擇機構後,界面中間及右邊區域會顯示詳細的組織機構資訊和相關資料。

Winform開發架構之權限管理系統功能介紹

建立組織機構,可以在左邊的樹形清單上的右鍵菜單上操作,也可以在頂部的“添加”按鈕上進行操作。建立組織機構資訊,處在同一個界面裡面,使用者輸入相關資料儲存即可。

Winform開發架構之權限管理系統功能介紹

組織機構可以通過“包含使用者”的方式,把系統其他部門的使用者納入到該部門管理範疇中,這樣,如果配置設定給該部門的權限,自動會授權給這些包含進來的使用者,實作使用者權限的累加管理。

Winform開發架構之權限管理系統功能介紹

單擊“包含使用者”界面的“添加”按鈕,彈出一個“選擇人員”的對話框,對話框界面裡的使用者資料是根據部門和角色進行分類的,使用者可以在左邊的樹清單中快速檢視指定範疇内的使用者資料,右邊的清單中有勾選項目,勾選後單擊“添加選擇”即可添加到底部的使用者選擇區域,也可以在選擇區域裡面删除指定使用者選擇,界面如下所示。

Winform開發架構之權限管理系統功能介紹

角色是權限系統管理裡面最為重要的部分,整個系統符合權限的國際通用标準,基于RBAC(基于角色的通路控制)的角色權限控制,這樣和權限相關的資訊,都是通過角色進行關聯,是以角色還需要管理和使用者之間的關系、群組織機構之間的關系、和可操作功能之間的關系等等。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

群組織機構包含使用者功能一樣,彈出選擇使用者對話框,選擇對應的使用者清單資訊。

Winform開發架構之權限管理系統功能介紹

系統類型定義,是用作區分一個業務應用系統的辨別,權限系統支援多個業務應用系統的繼承,雖然預設是一個,但是可以根據需要進行擴充,使得權限管理系統管理的範疇更大,實作所有業務系統共享一個權限管理系統的布局。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

功能管理,是業務應用系統的權限控制最小單元,可以用作控制系統的按鈕、菜單等界面元素,也可以用作控制顯示或隐藏的某些字段的操作。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

為了友善一次性添加多個功能單元,可以通過“批量添加”操作進行功能的批量添加,批量添加界面如下所示。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

一般Winform程式中,菜單都是直接寫在主程式中的,這樣對于經常性修改和維護菜單的相關資訊,可能有所不便,而且對于插件化的系統應用,新增菜單是常見的事情,這樣就需要對菜單進行動态配置管理了,通過背景菜單的配置和權限的指定,能夠實作菜單的動态加載和權限驗證。

是以菜單也是權限配置設定的一部分,為了有效管理菜單資源,我們把菜單放到權限管理系統中進行管理控制,可根據使用者權限進行動态控制顯示。

Winform開發架構之權限管理系統功能介紹

設定好菜單的圖示和Winform窗體類型,就能在Winform架構中動态建構菜單資訊了。菜單的圖表放置在系統的相對目錄下即可。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

建立或者編輯的菜單界面如下所示,除了需要輸入“顯示名稱”外,還需要選擇“上級菜單”,如果菜單需要進行權限控制,那麼在“功能控件ID”輸入需要的控制鍵即可,如下紅色框選部分。

Winform開發架構之權限管理系統功能介紹

菜單的“上級菜單”是一個下拉的樹狀清單,友善顯示層次關系并進行選擇。

Winform開發架構之權限管理系統功能介紹

在一般的權限系統裡面,可能經常會看到系統的黑名單或者白名單的攔截功能。在一般 權限系統裡面,常見的黑名單就是禁止使用者在某些IP上登入系統,白名單就是允許使用者隻在某些IP上登入系統。本随筆主要介紹在我的權限系統裡面,如何實作這個黑白名單的功能,以及介紹在其中應用到的IP對比操作,IP段判斷等操作代碼。

要完成黑名單的攔截和白名單的放行,我們需要進行名單的配置操作,我們把相關的配置放到清單裡面進行展示,可以添加多個黑名單或者白名單,如下界面所示。

Winform開發架構之權限管理系統功能介紹

可以在黑白名單清單上單擊“建立”按鈕進行添加一條記錄,或者在已有記錄上輕按兩下黑白名單可以進行編輯,界面如下所示。

Winform開發架構之權限管理系統功能介紹

通過“添加使用者”按鈕,在彈出的選擇人員界面中,指定黑白名單的人員清單即可。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

在很多業務系統裡面,資料是很敏感的,特别對于一些增加、修改、删除等關鍵的操作,如果能在架構層面的支援基礎上,以最少的代碼實作重要表的日志記錄,那麼是一件非常值得慶賀的事情,也能夠為我們客戶的資料提供重要的日志跟蹤,甚至是資料恢複的參考。

通過權限管理系統的支援和《Winform開發架構》的底層支援,業務系統子產品,隻需要通過一行代碼就能實作業務表的日志記錄,這對我們開發新的業務子產品,效率可以提高很多,同時也能給客戶提供更好的資料支援服務。通過在權限系統子產品裡面配置參數和顯示記錄檔記錄,能夠給業務開發提供基礎性的開發架構支援。

Winform開發架構之權限管理系統功能介紹

在記錄檔的參數配置清單裡面,我們可以添加一些業務表記錄檔配置,然後通過在開發時刻,一行代碼指定記錄日志操作,即可實作記錄檔的記錄。

Winform開發架構之權限管理系統功能介紹

1) 修改記錄的記錄檔

Winform開發架構之權限管理系統功能介紹

2) 增加記錄的記錄檔

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

實作代碼就是調用該程式集的接口API啟動權限系統的登陸界面,如下所示。

Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹
Winform開發架構之權限管理系統功能介紹

權限系統和其他架構一樣,提供基于多種資料庫(SqlServer/Oracle/MySql/SQLite/Access等資料庫)的整合支援。雖然我們在實際項目中,一般采用一種資料庫進行處理,但是不同的項目,采用的資料庫類型可能不同,本Winform開發架構為了友善示範和擴充的需要,内置支援了SqlServer/Oracle/MySql/ SQLite /Access,更多的資料庫,也可以通過擴充資料庫通路基類的方式進行更多資料庫的支援。

Winform開發架構之權限管理系統功能介紹

整個權限管理系統的資料庫通路,能夠手動配置資料庫類型,對于同一種資料庫,也可以把資料存儲分開存儲,如業務資料存儲在一個資料庫,權限管理控制存儲在另外一個資料庫這種方式。