国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

介紹——用戶認證管理設計方案

2019-11-18 12:00:46
字體:
來源:轉載
供稿:網友

  用戶認證治理設計方案
  
  
  
  1 設計思路
  
  為了設計一套具有較強可擴展性的用戶認證治理,需要建立用戶、角色和權限等數據庫表,并且建立之間的關系,具體實現如下。
  
  1.1 用戶
  用戶僅僅是純粹的用戶,用來記錄用戶相關信息,如用戶名、密碼等,權限是被分離出去了的。用戶(User)要擁有對某種資源的權限,必須通過角色(Role)去關聯。
  
  用戶通常具有以下屬性:
  
  ü     編號,在系統中唯一。
  
  ü     名稱,在系統中唯一。
  
  ü     用戶口令。
  
  ü     注釋,描述用戶或角色的信息。
  
  1.2 角色
  角色是使用權限的基本單位,擁有一定數量的權限,通過角色賦予用戶權限,通常具有以下屬性:
  
  ü     編號,在系統中唯一。
  
  ü     名稱,在系統中唯一。
  
  ü     注釋,描述角色信息
  
  1.3 權限
    權限指用戶根據角色獲得對程序某些功能的操作,例如對文件的讀、寫、修改和刪除功能,通常具有以下屬性:
  
  ü     編號,在系統中唯一。
  
  ü     名稱,在系統中唯一。
  
  ü     注釋,描述權限信息
  
  1.4 用戶與角色的關系
  一個用戶(User)可以隸屬于多個角色(Role),一個角色組也可擁有多個用戶,用戶角色就是用來描述他們之間隸屬關系的對象。用戶(User)通過角色(Role)關聯所擁有對某種資源的權限,例如
  
  l       用戶(User):
  
  UserID      UserName        UserPwd
  
  1          張三         xxxxxx
  
  2          李四         xxxxxx
  
  ……
  
  l             角色(Role):
  
  RoleID           RoleName     RoleNote
  
    01         系統治理員    監控系統維護治理員
  
    02         監控人員     在線監控人員
  
    03         調度人員     調度工作人員
  
    04         一般工作人員  工作人員
  
    ……
  
  l     用戶角色(User_Role):
  
  UserRoleID      UserID      RoleID      UserRoleNote
  
  1            1          01         用戶“張三”被分配到角色“系統治理員”
  
  2            2          02         用戶“李四”被分配到角色“監控人員”
  
  3            2          03         用戶“李四”被分配到角色“調度人員”
  
  ……
  
    從該關系表可以看出,用戶所擁有的特定資源可以通過用戶角色來關聯。
  
  1.5 權限與角色的關系
  一個角色(Role)可以擁有多個權限(Permission),同樣一個權限可分配給多個角色。例如:
  
  l     角色(Role):
  
  RoleID      RoleName     RoleNote
  
    01         系統治理員    監控系統維護治理員
  
    02         監控人員     在線監控人員
  
    03         調度人員     調度工作人員
  
    04         一般工作人員  工作人員
  
    ……
  
  l     權限(Permission):
  
  PermissionID   PermissionName    PermissionNote
  
  0001         增加監控         答應增加監控對象
  
  0002         修改監控         答應修改監控對象
  
  0003         刪除監控         答應刪除監控對象
  
  0004         察看監控信息    答應察看監控對象
  
  ……
  
  l     角色權限(Role_Permission):
  
  RolePermissionID  RoleID PermissionID RolePermissionNote
  
  1         01      0001    角色“系統治理員”具有權限“增加監控”
  
  2         01      0002    角色“系統治理員”具有權限“修改監控”
  
  3         01      0003    角色“系統治理員”具有權限“刪除監控”
  
  4         01      0004    角色“系統治理員”具有權限“察看監控”
  
  5         02      0001    角色“監控人員”具有權限“增加監控”
  
  6         02      0004    角色“監控人員”具有權限“察看監控”
  
  ……
  
    由以上例子中的角色權限關系可以看出,角色權限可以建立角色和權限之間的對應關系。
  
  1.6 建立用戶權限
  用戶權限系統的核心由以下三部分構成:創造權限、分配權限和使用權限。
  
  第一步由Creator創造權限(Permission),Creator在設計和實現系統時會劃分。利用存儲過程CreatePermissionInfo(@PermissionName,@PermissionNote)創建權限信息,指定系統模塊具有哪些權限。
  
  第二步由系統治理員(Administrator)創建用戶和角色,并且指定用戶角色(User-Role)和角色權限(Role-Permission)的關聯關系。
  
  1)Administrator具有創建用戶、修改用戶和刪除用戶的功能:
  
  
  
  l 存儲過程CreateUserInfo(@UserName,@UserPwd)創建用戶信息;
  
  l 存儲過程ModifyUserInfo(@UserName,@UserPwd)修改用戶信息;
  
  l 存儲過程DeleteUserInfo(@UserID)刪除用戶信息;
  
  2)Administrator具有創建角色和刪除角色的功能:
  
  
  
  l 存儲過程CreateRoleInfo(@RoleName,@RoleNote)創建角色信息;
  
  l 存儲過程DeleteRoleInfo(@RoleID)刪除角色信息;
  
  3)Administrator具有建立用戶和角色、角色和權限的關聯關系功能:
  
  l 存儲過程GrantUserRole(@UserID,@RoleID,@UserRoleNote)建立用戶和角色的關聯關系;
  
  l 存儲過程DeleteUserRole(@UserRoleID)刪除用戶和角色的關聯關系;
  
  l 存儲過程GrantRolePermission(@RoleID,@PermissionID,@RolePermissionNote)建立角色和權限的關聯關系;
  
  l 存儲過程DeleteRolePermission(@RolePermissionID)刪除角色和權限的關聯關系;
  
  第三步用戶(User)使用Administrator分配給的權限去使用各個系統模塊。利用存儲過程GetUserRole(@UserID, @UserRoleID output),GetRolePermission(@RoleID,@Role-
  
  -PermissinID output)獲得用戶對模塊的使用權限。
  
  1.7 用戶認證實現
  當用戶通過驗證后,由系統自動生成一個128位的TicketID保存到用戶數據庫表中,建立存儲過程Login(@UserID,@UserPwd,@TicketID output)進行用戶認證,認證通過得到一個TicketID,否則TicketID為null。其流程圖如下:
  
  
  圖1 Login流程圖
  
  得到TicketID后,客戶端在調用服務端方法時傳遞TicketID,通過存儲過程JudgeTicketPermission(@TicketID,@PermissionID)判定TicketID對應的用戶所具有的權限,并根據其權限進行方法調用。
  
  當用戶退出系統時,建立存儲過程Logout(@UserID)來退出系統。當用戶異常退出系統時,根據最后的登陸時間(LastSignTime)確定用戶的TickeID,建立存儲過程ExceptionLogout(@UserID,@LastSignTime)處理用戶的異常退出。
  
  
  圖2 Logout流程圖
  
  WebService可以采用SoapHeader中寫入TicketID來使得TicketID從客戶端傳遞給服務端。.Net Remoting可以采用CallContext類來實現TicketID從客戶端傳遞給服務端。
  
  2 數據庫設計
  
  2.1 數據庫表
  
  圖3 數據庫關系圖
  
  2.2 數據庫表說明
  2.2.1 用戶表(Static_User)
  
   介紹——用戶認證治理設計方案(圖一)
  
  
  2.2.2 角色表(Static_Role)
  
   介紹——用戶認證治理設計方案(圖二)
  
  2.2.3 用戶-角色表(Static_User_Role)
  
   介紹——用戶認證治理設計方案(圖三)
  
  2.2.4 權限表(Static_Permission)
  
   介紹——用戶認證治理設計方案(圖四)
  
  2.2.5 角色-權限表(Static_Role_Permission)
  
  介紹——用戶認證治理設計方案(圖五)
  
  3 .net技術概要
  
  3.1 WebService SoapHeader
  對 SQL 數據庫執行自定義身份驗證和授權。在這種情況中,應向服務傳遞自定義憑據(如用戶名和密碼),并讓服務自己處理身份驗證和授權。 將額外的信息連同請求一起傳遞給 xml Web 服務的簡便

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 右玉县| 宜丰县| 济源市| 通榆县| 广汉市| 江门市| 台中县| 江都市| 乌拉特后旗| 祁门县| 松桃| 德阳市| 上虞市| 铁力市| 大姚县| 丰都县| 贵德县| 巍山| 黎平县| 奉新县| 潍坊市| 天台县| 扶绥县| 柏乡县| 丰都县| 江油市| 禹城市| 博野县| 于田县| 辛集市| 广丰县| 平利县| 彰武县| 通辽市| 得荣县| 华阴市| 南平市| 谷城县| 昌乐县| 永靖县| 勃利县|