• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    劉佳

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

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

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

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

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

    2.NET基于角色的安全性

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

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

    3.1架構(gòu)與功能

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

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

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

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

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

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

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

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

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

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

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

    3.6表示層調(diào)用

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

    睢宁县| 会同县| 景德镇市| 平乐县| 故城县| 阜平县| 富平县| 璧山县| 清新县| 承德县| 定襄县| 新乐市| 金平| 普陀区| 辽源市| 龙门县| 宜君县| 拉孜县| 佛冈县| 寻甸| 江川县| 化州市| 绥芬河市| 博客| 田林县| 三原县| 博白县| 康保县| 凌云县| 古浪县| 莱芜市| 苍南县| 波密县| 莱阳市| 安康市| 常熟市| 肥东县| 北海市| 衡山县| 搜索| 湘乡市|