黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

權(quán)限系統(tǒng)應(yīng)用概要分析

系統(tǒng) 2247 0

參考文獻(xiàn)

1. MSDN 文檔

2. MS Authorization and Profile Application Block Help 文檔

1. 概述

在應(yīng)用程序設(shè)計(jì)中,常常需要根據(jù)不同用戶控制其在程序中的行為。例如:管理員、經(jīng)理、員工在程序中的訪問級別存在差異,而一個(gè)用戶可以扮演多個(gè)角色。用戶訪問受保護(hù)資源或執(zhí)行受保護(hù)操作的能力稱為權(quán)限,可表述為“判斷 WHO對WHAT(WHICH)進(jìn)行HOW的操作”的邏輯表達(dá)式。

現(xiàn)有的權(quán)限認(rèn)證主要基于兩種機(jī)制: ACL(訪問控制列表)和基于角色的控制。

ACL為安全對象建立訪問控制列表(DACLS)。通過比較用戶的權(quán)限是否存在于列表中,決定用戶可以訪問資源。

基于角色( Role-based)通過將系統(tǒng)按角色劃分權(quán)限。當(dāng)用戶關(guān)聯(lián)到某個(gè)角色,將自動獲得該角色所擁有的權(quán)限。

role

在企業(yè)應(yīng)用方面,基于角色的控制方法,由于減小了授權(quán)管理的復(fù)雜性,易于操作,具有較好的前景。

值得注意的是,權(quán)限并不是簡單的判定過程。權(quán)限的檢查常常需要應(yīng)用業(yè)務(wù)邏輯。例如:合同只能被其創(chuàng)建者刪除,同組用戶可以修改,授權(quán)用戶可以查看。通常,與權(quán)限控制對象的實(shí)例相關(guān)的稱為細(xì)粒度權(quán)限,而只與對象類型關(guān)聯(lián)的稱為粗粒度權(quán)限。

1. 設(shè)計(jì)目標(biāo)

權(quán)限系統(tǒng)模塊提供基本架構(gòu)支持基于角色方式的授權(quán)。

1. 向系統(tǒng)中的用戶授權(quán)

2. 支持角色的繼承

3. 支持權(quán)限系統(tǒng)的多種存儲方式

4. 支持業(yè)務(wù)邏輯驗(yàn)證

5. 具有較好的擴(kuò)展性和性能

2. 分析

2.1. 權(quán)限系統(tǒng)的工作流程

總體上講,權(quán)限系統(tǒng)的工作由下列過程組成:

權(quán)限系統(tǒng)初始化

權(quán)限系統(tǒng)接收用戶對資源的訪問請求

權(quán)限系統(tǒng)根據(jù)用戶具有的權(quán)限,返回true或false

最后,權(quán)限系統(tǒng)釋放其資源,銷毀實(shí)例。

2.2. 權(quán)限系統(tǒng)的對象

n 資源

資源是權(quán)限系統(tǒng)的保護(hù)對象。資源可以是某個(gè)實(shí)體,如文件系統(tǒng)中的文件;也可以是概念。在應(yīng)用程序中,資源更多以模塊劃分。

資源間存在嵌套關(guān)系。如:現(xiàn)金流量表屬于財(cái)務(wù)報(bào)表。

對資源的訪問方式稱為操作。顯然,資源可以具有多種操作。如:合同具有錄入、查看、修改、刪除、執(zhí)行、審核、打印等不同操作。

操作間存在重疊關(guān)系,比如對合同審核者當(dāng)然可以查看合同。

概念模型如下:

<shapetype id="_x0000_t75" coordsize="21600,21600" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype>

n 用戶和角色

用戶是權(quán)限系統(tǒng)的訪問實(shí)體。角色是具有某類權(quán)限集的用戶的統(tǒng)稱。角色之間存在繼承關(guān)系,比如財(cái)務(wù)主管同時(shí)也是財(cái)務(wù)人員。

概念模型如下:

值得注意的是,權(quán)限與角色并不存在一致性。如:某用戶希望擁有其角色外的權(quán)限;某角色希望屏蔽屬于其類別的某個(gè)(些)用戶的權(quán)限。

概念模型擴(kuò)展如下:

用戶可以直接賦權(quán)限

角色與受控列表關(guān)聯(lián)。受控列表即存儲角色中某些用戶禁止對角色中允許的資源進(jìn)行訪問列表。

2.3. 權(quán)限系統(tǒng)的模塊

n 資源管理

系統(tǒng)中的受控資源通常都是可確定的。如果資源發(fā)生變化,常意味著代碼的更迭(包含資源分配與驗(yàn)證部分)。因此,在系統(tǒng)中的受控資源在程序運(yùn)行態(tài)時(shí)不可變的前提下,資源管理的功能較為簡單:

a) 獲取系統(tǒng)中所有資源列表

b) 根據(jù)資源(操作)標(biāo)識,取得資源信息。

n 權(quán)限管理

權(quán)限管理是系統(tǒng)中的關(guān)鍵部分,決定權(quán)限分配到實(shí)體對象中的過程。

權(quán)限管理的功能如下:

a) 增加、刪除、更新用戶或角色對資源訪問的權(quán)限。

b) 獲取系統(tǒng)中某用戶或角色所賦有的所有權(quán)限。

c) 獲取系統(tǒng)中某用戶或角色對某種資源(操作)的權(quán)限

d) 增加、刪除角色受控列表?xiàng)l目

值得注意的是用戶權(quán)限是用戶所具有的角色權(quán)限和其本身所賦予的權(quán)限的交集。因此在權(quán)限對象中設(shè)置角色用戶標(biāo)志加以區(qū)分。

n 權(quán)限檢查

權(quán)限檢查是系統(tǒng)中的應(yīng)用部分。 權(quán)限檢查包含業(yè)務(wù)邏輯檢查。

權(quán)限檢查使用權(quán)限管理器的功能。

業(yè)務(wù)邏輯檢查共發(fā)生兩次。一次在權(quán)限檢查之前,一次在權(quán)限檢查之后。權(quán)限檢查之前的業(yè)務(wù)邏輯檢查可以直接返回結(jié)果,而不用再進(jìn)行權(quán)限檢查。

3. 權(quán)限系統(tǒng)架構(gòu)

權(quán)限系統(tǒng)設(shè)計(jì)為可擴(kuò)展性結(jié)構(gòu)。使用 Provider 接口用于權(quán)限模型與數(shù)據(jù)存儲間的交互。通過實(shí)現(xiàn)自定義的 Provider ,經(jīng)過配置入口插入權(quán)限系統(tǒng)中。

配置文件以 XML 文件為主流格式。 Provider 接口定義如下:

Element XML 文件元素類型

權(quán)限系統(tǒng)應(yīng)用概要分析


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論