標籤:blog http os io strong ar 資料 2014 log
經過一年多的設計編碼和測試,公司通用許可權系統對業務部門提供了比較穩定、便捷和靈活的支撐。
該系統分為兩部分:配置介面和WCF服務。
介面:許可權系統管理員可以通過配置介面的方式對各部門或者組織機構的人員進行業務許可權分配操作。
WCF服務:業務開發人員可以通過許可權系統提供的介面服務,擷取業務許可權資料,對業務系統進行開發。
該設計的好處就是許可權系統的可移植性更高,許可權系統可以單獨部署,發布對外的服務介面即可,和業務系統之間耦合性更低,從而達到設計模式的核心價值高內聚,低耦合。
IIS部署樣本如下:
許可權系統開發環境:
開發工具:Microsoft Visual Studio 2012(2010)中文旗艦版
資料庫: Sql server2008\2012(Oracle)
架構:Spring.net+NHibernate+MVC
系統功能:
1、 組織機構:使用者維護頁面主要用來對系統組織圖進行管理。進入頁面後左側樹樁菜單顯示已有組織機構以及層級結構,點擊某級節點的組織機構名稱。右側顯示組織機構的詳細資料,以及該組織機構下的所屬使用者。
2、 使用者維護:使用者維護頁面主要用來對系統使用者進行管理。進入頁面後按登入使用者的許可權顯示全部可見使用者,分頁顯示。同時可按照組織機構、真實姓名、登入名稱三種條件進行模糊篩選。
使用者授權:對所選使用者進行角色授權,一個使用者可以選擇多個角色進行授權,
3、應用維護:應用維護頁面主要用來對系統子應用(系統或者應用)的相關資訊進行管理。
進入頁面後按登入使用者的許可權顯示全部可見應用,分頁顯示,以表格形式展示。
4、角色維護:角色維護頁面主要用來對系統角色進行管理。進入頁面後按登入使用者的許可權顯示全部可見角色,分頁顯示。同時可按照所屬應用、角色編碼兩種條件進行模糊篩選。(角色與應用為多對一關聯性,每個角色只能屬於一個應用)
頁面授權:對某個角色進行頁面授權控制,勾選上的頁面菜單為該角色授權菜單,
資料授權:對系統原子資料進行管理和授權操作,
5、使用者授權:使用者授權,是用來將以賦予許可權的一些系列角色,授予某個使用者。使該使用者具有這些許可權。頁面分為左邊使用者區,和右邊歸屬角色區。
使用者可通過頁簽切換,實現按組織機構進行過濾篩選後選擇具體使用者,也可實現為某個組織機構下所有使用者授予某些角色的功能
6、頁面維護: 頁面維護主要用來對每個應用下的子頁面以及頁面間的層級關係進行管理。對子系統的菜單和頁面進行管理和賦值頁面地址,使用者根據角色授權管理頁面是否可見或者訪問其地址。
7、頁面資源維護:使用者資源維護主要用來對每個頁面內的頁面資源以及資源間的層級關係進行管理。(頁面上的每一個控制項都稱為一個資源)後台使用者可以根據該頁面上的資源對其進一步管理,比如頁面可以對某個使用者在該頁面上只可以查詢不可以更改的管理。
8、許可權查詢:用來查詢具體某個使用者下,某個角色的,對應類型的許可權
WCF服務介面:
形式:
UpUsersComm LoginVerify(string userId, string passWord);
描述:
使用者進行登入驗證。
傳入參數:
UserId:使用者登陸ID。
PassWord:登入密碼。
傳回值:
UpUsersComm自訂類型,存有使用者資訊
形式:
UpUsersComm GetSystemPermission (string userId);
描述:
根據目前使用者ID,擷取使用者所具有的訪問業務系統模組的許可權。
傳入參數:
UserId:使用者Id。字串類型。
傳回值:
UpUsersComm,存有使用者所能訪問的系統應用模組集合。
形式:
UpUsersComm GetPagePermission(string userId, long systemIdentifierId)
描述:
根據目前使用者Id,擷取使用者所能訪問具體哪些頁面,返回頁面表的映射對象,並帶有級聯關係,業務模組能自行形成樹狀結構。
傳入參數:
UserId:使用者名稱。字串類型。
SystemIdentifierid:系統資料表示Id。字串類型。
傳回值:
UpUsersComm,存有使用者所能訪問的頁面對象的集合。
形式:
UpUsersComm GetPagePermission(string userId, string systemIdentifierName)
描述:
根據目前使用者Id,擷取使用者所能訪問具體哪些頁面,返回頁面表的映射對象,並帶有級聯關係,業務模組能自行形成樹狀結構。
傳入參數:
UserId:使用者名稱。字串類型。
systemIdentifierName:應用系統名稱。字串類型。
傳回值:
UpUsersComm,存有使用者所能訪問的頁面對象的集合。
形式:
UpUsersComm GetPageSourcePermission(string userId, string systemIdentifierName, string pageName);
描述:
根據目前使用者Id、應用系統名稱和頁面名稱,擷取使用者所能訪問具體頁面的資源,返回頁面資源集合。
傳入參數:
UserId:使用者名稱。字串類型。
systemIdentifierName:應用系統名稱。字串類型。
pageName:頁面名稱
傳回值:
UpUsersComm,存有使用者所能訪問的頁面資來源物件的集合。
形式:
UpUsersComm GetPageSourcePermission(string userId, long pageId);
描述:
根據目前使用者Id和頁面ID,擷取使用者所能訪問具體頁面的資源,返回頁面資源集合。
傳入參數:
UserId:使用者名稱。字串類型。
pageId: 頁面ID。字串類型。
傳回值:
UpUsersComm,存有使用者所能訪問的頁面資來源物件的集合。
形式:
UpUsersComm GeDataPermission(string userId, string systemIdentifierName, string dataCategoryName)
描述:
根據目前使用者Id、應用系統名稱和資料類別名稱,擷取使用者所能訪問未經處理資料資源,返回未經處理資料集合。
傳入參數:
UserId:使用者名稱。字串類型。
systemIdentifierName:應用系統名稱。字串類型。
dataCategoryName:未經處理資料類別名稱。字串類型。
傳回值:
UpUsersComm,存有使用者所能訪問的未經處理資料集合。
形式:
UpUsersComm GeDataPermission(string userId, long dataCategoryId)
描述:
根據目前使用者Id和資料類別ID,擷取使用者所能訪問未經處理資料資源,返回未經處理資料集合。
傳入參數:
UserId:使用者名稱。字串類型。
dataCategoryId:資料類別ID。長整型。
傳回值:
UpUsersComm,存有使用者所能訪問的未經處理資料集合。
形式:
UpUsersComm GetDeniedDataPermission(string userId, string systemIdentifierName, string dataCategoryName)
描述:
根據目前使用者Id、應用系統名稱和未經處理資料名稱,擷取使用者所能訪問未經處理資料類型為1資源,返回未經處理資料集合。
傳入參數:
UserId:使用者名稱。字串類型。
systemIdentifierName:應用系統名稱。字串類型。
dataCategoryName:資料類別名稱。字串類型。
傳回值:
UpUsersComm,存有使用者所能訪問的未經處理資料類型為1的資料集合。
形式:
UpUsersComm GeDataPermissionByPage(string userId, string systemIdentifierName, string dataCategoryName,int pageSize, int pageIndex)
描述:
根據目前使用者Id、應用系統名稱和未經處理資料名稱,分頁擷取使用者所能訪問未經處理資料,返回當頁未經處理資料集合。
傳入參數:
UserId:使用者名稱。字串類型。
systemIdentifierName:應用系統名稱。字串類型。
dataCategoryName:資料類別名稱。字串類型。
pageSize:頁面行數。整型。
pageIndex:頁面索引。整型。
傳回值:
UpUsersComm,存有使用者所能訪問的未經處理資料集合。
形式:
UpUsersComm GetRolesByMenu(string menuName)
描述:
根據菜單名稱,擷取角色,返回角色集合。
傳入參數:
menuName:菜單名稱。字串類型。
傳回值:
UpUsersComm,存有角色集合。
形式:
IList<UpRoleComm> GetRoleWhitUserID(string userId)
描述:
根據使用者ID,擷取角色,返回角色集合。
傳入參數:
userId:使用者ID。字串類型。
傳回值:
IList<UpRoleComm>,存有使用者所能訪問的角色集合。
形式:
IList<UpRoleComm> GetRoleWhitUserID(string userId)
描述:
根據使用者ID,擷取使用者資訊,返回使用者物件。
傳入參數:
userId:使用者ID。字串類型。
傳回值:
UpUsersComm,存有使用者所能訪問的使用者資訊。
形式:
void CreateUser(UpMQUserComm user);
描述:
建立使用者。
傳入參數:
UpMQUserComm:使用者物件。
傳回值:無
形式:
void UpdateUserInfo (UpUsers user);
描述:
修改使用者資訊。
傳入參數:
UpUsers:使用者物件。
傳回值:無
形式:
void DeleteUser(string userId)
描述:
根據使用者ID,刪除使用者資訊。
傳入參數:
userId:使用者ID。
傳回值:無
形式:
bool IsCaptain(string userId)
描述:
根據使用者ID,判斷該使用者是否有超級管理員。
傳入參數:
userId:使用者ID。
傳回值:TRUE/False
形式:
long GetDatatypeIDByName(string name)
描述:
根據資料類型名稱,擷取資料類型的名稱。
傳入參數:
name:資料類型名稱。
傳回值:int
形式:
UpRoleComm GetRoleById(long id)
描述:
根據ID擷取角色資訊。
傳入參數:
id:角色ID。
傳回值:
UpRoleComm,角色資訊。
形式:
ArrayList GetRoleByUserId(string userId)
描述:
根據使用者ID,擷取角色集合。
傳入參數:
userId:使用者ID。
傳回值:
ArrayList,角色資訊集合。
形式:
int UpdatePassword(string userId,string pwd,string oldPwd)
描述:
修改使用者密碼,成功返回1,否則返回0。
傳入參數:
userId:使用者ID。
Pwd: 新密碼。
oldPwd:舊密碼
傳回值:1/0
大概功能,先整理到這,有興趣的qq:187386033。
.net通用許可權設計源碼