国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于.NET的角色訪問控制模塊設(shè)計(jì)與實(shí)現(xiàn)

2016-01-14 11:26劉佳
電腦知識(shí)與技術(shù) 2015年19期

劉佳

摘要:基于角色的訪問控制模型是目前大多數(shù)網(wǎng)站系統(tǒng)所采用的權(quán)限控制策略,微軟的.NET平臺(tái)提供了基于角色的安全性模型,用戶通過實(shí)現(xiàn)Iprincipal和IIdentity接口可以方便的構(gòu)建高效的、可擴(kuò)展的權(quán)限管理模塊。

關(guān)鍵詞:基于角色的訪問控制;Iprincipal;IIdentity

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)19-0001-02

1基于角色的權(quán)限管理

基于角色的訪問控制(RBAC)模型的主要作用是管理用戶與權(quán)限間的對(duì)應(yīng)關(guān)系,基本思想是在用戶和權(quán)限之間加入一個(gè)角色,將訪問控制分為兩個(gè)步驟:用戶與角色關(guān)聯(lián),角色與權(quán)限關(guān)聯(lián),從而實(shí)現(xiàn)了用戶與權(quán)限的邏輯分離。RBAC模型的好處是可以簡(jiǎn)化權(quán)限管理、提高工作效率,使系統(tǒng)能夠應(yīng)對(duì)需求的變化,具有更好的擴(kuò)展性。

2.NET基于角色的安全性

微軟.NET平臺(tái)提供了對(duì)RBAC模型的支持,開發(fā)者可以在此基礎(chǔ)上實(shí)現(xiàn)用戶權(quán)限管理功能,其中比較重要的兩個(gè)概念是驗(yàn)證(authentication)和授權(quán)(authorization)。驗(yàn)證是指確定用戶身份,授權(quán)是指根據(jù)用戶身份確定用戶權(quán)限。.NET提供了IIdentity和IPrincipal兩個(gè)接口來完成驗(yàn)證和授權(quán),實(shí)現(xiàn)了IIdentity接口的對(duì)象用于驗(yàn)證用戶身份;實(shí)現(xiàn)了IPrincipal接口的對(duì)象用于確定用戶角色進(jìn)而為用戶授權(quán)。

3權(quán)限管理模塊設(shè)計(jì)與實(shí)現(xiàn)

3.1架構(gòu)與功能

采用三層架構(gòu)+簡(jiǎn)單工廠模式,分為數(shù)據(jù)層、業(yè)務(wù)層和表示層。功能包括用戶管理,角色管理,權(quán)限管理,用戶身份認(rèn)證與授權(quán)。

3.2數(shù)據(jù)庫(kù)實(shí)體關(guān)系模型

權(quán)限管理模塊包含用戶、角色、權(quán)限、用戶一角色、角色一權(quán)限5個(gè)核心對(duì)象。因此,數(shù)據(jù)庫(kù)中也對(duì)應(yīng)包含5個(gè)表,分別是:users表,存儲(chǔ)用戶信息;roles表,存儲(chǔ)角色信息;permissions表,存儲(chǔ)權(quán)限信息;userrole表,存儲(chǔ)用戶與角色間的對(duì)應(yīng)關(guān)系;ro-lepermisson表,存儲(chǔ)角色與權(quán)限的對(duì)應(yīng)關(guān)系。

3.3實(shí)體類設(shè)計(jì)

實(shí)體類與數(shù)據(jù)庫(kù)表相對(duì)應(yīng),有users,roles,permissions三個(gè)類,僅負(fù)責(zé)實(shí)體的表示和數(shù)據(jù)的傳遞,不包含任何業(yè)務(wù)邏輯。

3.4業(yè)務(wù)層設(shè)計(jì)與實(shí)現(xiàn)

業(yè)務(wù)層包含3個(gè)主要類:users,roles,permissions分別實(shí)現(xiàn)用戶、角色、權(quán)限的管理邏輯。以u(píng)sers為例,主要實(shí)現(xiàn)了用戶的增、刪、改、查和獲取用戶基本信息、角色信息和權(quán)限信息等功能。

3.5實(shí)現(xiàn).NET基于角色的權(quán)限管理接口

用戶可以通過編程實(shí)現(xiàn)IIdentity和IPrincipal接口來實(shí)現(xiàn)RBAC模型。IIdentity接口用于確定用戶身份,包含兩個(gè)重要屬性:Name,獲取當(dāng)前用戶的名稱;IsAuthenticated,指示用戶身份是否通過了驗(yàn)證。IPrincipal接口用于確定用戶角色,包含一個(gè)屬性-Identity,它包含當(dāng)前用戶的身份信息,它的類型是IIden-tity,也就是說IPrincipal必須實(shí)現(xiàn)IIdentity接口;此外IPrincipal接口還包含一個(gè)方法-IsInRole,用于確定當(dāng)前用戶是否屬于指定的角色。

在ASP.NET中,用戶身份信息存儲(chǔ)在Httpcontext.User屬性中,它接受并返回實(shí)現(xiàn)了IPrincipal接口的對(duì)象,而IPrincipal接口必須實(shí)現(xiàn)IIdentity接口,所以只要在程序中實(shí)現(xiàn)這兩個(gè)接口,就可以將用戶信息、角色信息、權(quán)限信息等保存到Httpcontext.User屬性中,在程序中隨時(shí)隨地訪問用戶的相關(guān)信息。

創(chuàng)建一個(gè)Myprincipal類實(shí)現(xiàn)IPrincipal接口。其中比較重要的兩個(gè)方法是:ValidateLogin()一根據(jù)用戶名和密碼驗(yàn)證用戶身份;Myprincipal()一類的構(gòu)造函數(shù),得到用戶角色和權(quán)限信息。代碼如下。

3.6表示層調(diào)用

首先根據(jù)用戶名和密碼驗(yàn)證用戶身份,通過驗(yàn)證的用戶信息存儲(chǔ)在Context.User中。

金溪县| 惠州市| 安岳县| 清原| 合肥市| 陆河县| 屏南县| 武功县| 金沙县| 湖南省| 克拉玛依市| 澳门| 桃园市| 嘉义县| 淅川县| 孟村| 义乌市| 岳阳县| 门源| 商都县| 镇康县| 湾仔区| 呈贡县| 马公市| 大竹县| 怀宁县| 万安县| 东台市| 临漳县| 尼勒克县| 宾川县| 乐安县| 阿拉善盟| 高清| 京山县| 志丹县| 五莲县| 定远县| 百色市| 宝兴县| 岳池县|