999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

試析ASP.NET MVC3基于角色的訪問控制

2013-04-29 00:22:44時(shí)楓棋黃海濤陳軍偉
無線互聯(lián)科技 2013年9期

時(shí)楓棋 黃海濤 陳軍偉

摘 要:網(wǎng)站的一個(gè)典型要求是,只允許某些用戶(經(jīng)過身份驗(yàn)證的用戶)查看特定的頁(yè)面。基于角色的訪問控制策略(RBAC)通過在用戶和權(quán)限之間引入角色,彌補(bǔ)了傳統(tǒng)方法的某些缺陷。傳統(tǒng)的訪問控制需要程序員編寫大量代碼來實(shí)現(xiàn),使用ASP.NET MVC3提供的角色管理,可以快速建立起健壯,功能強(qiáng)大的基于角色的訪問控制。

關(guān)鍵詞:ASP.NET;MVC;基于角色的訪問控制;WEB安全

在基于Web的信息系統(tǒng)中,由于網(wǎng)絡(luò)信息共享的特性,系統(tǒng)的安全問題越來越突出,安全性研究越來越重要,對(duì)用戶訪問進(jìn)行控制是保證系統(tǒng)安全的重要措施之一。以往在對(duì)Internet開放的網(wǎng)站上設(shè)計(jì)實(shí)現(xiàn)一個(gè)用戶權(quán)限控制管理系統(tǒng)通常都要花費(fèi)很多的時(shí)間。ASP.NET MVC3內(nèi)置了基于角色的訪問控制模塊,實(shí)現(xiàn)基于窗體的用戶身份驗(yàn)證和權(quán)限控制功能,這里淺析其實(shí)現(xiàn)方式。

1 Forms身份驗(yàn)證的原理

ASP.NET在Internet上的應(yīng)用程序廣泛采用Forms身份驗(yàn)證方式。由于HTTP協(xié)議是無狀態(tài)的,WEB服務(wù)器每次在處理請(qǐng)求時(shí),都會(huì)按照用戶所訪問的資源所對(duì)應(yīng)的處理代碼,從頭到尾執(zhí)行一遍,然后輸出響應(yīng)內(nèi)容,WEB服務(wù)器不會(huì)記住已處理了哪些用戶的請(qǐng)求。

雖然HTTP協(xié)議是無狀態(tài)的,我們的業(yè)務(wù)需求卻要求WEB服務(wù)器能夠記住用戶的身份,驗(yàn)證用戶的權(quán)限。這通常是通過Cookie或者Session來實(shí)現(xiàn),他們都可以保存用戶的身份憑據(jù),在不同的HTTP請(qǐng)求之間維持狀態(tài)。Forms身份驗(yàn)證也是通過這兩種方式來實(shí)現(xiàn),既可以讀取用戶瀏覽器中加密存儲(chǔ)的Cookie,在瀏覽器不支持Cookie的情況下也可以使用SessionID來實(shí)現(xiàn)身份驗(yàn)證。只需要在Web.config文件中簡(jiǎn)單配置即可。

用戶身份驗(yàn)證是用戶權(quán)限控制的基礎(chǔ)。

2 ASP.NET MVC3基于角色的權(quán)限控制

ASP.NET MVC3提供了幾個(gè)關(guān)鍵類來管理用戶驗(yàn)證與授權(quán)功能

Membership集中了用戶賬戶的創(chuàng)建、刪除,密碼的重置與修改等與用戶賬戶密切相關(guān)的功能。

Roles將用戶與角色聯(lián)系在一起,一個(gè)用戶可以屬于多個(gè)角色,以此來對(duì)用戶進(jìn)行不同的授權(quán)。

Profiles用來存儲(chǔ)用戶的任意個(gè)人數(shù)據(jù),如用戶的昵稱、偏好等數(shù)據(jù)。

以上關(guān)鍵類提供的功能,其具體實(shí)現(xiàn)只需要在Web.config文件中配置成微軟提供給我們的提供者(Provider)即可。

這充分體現(xiàn)了面向?qū)ο笏枷氲尼槍?duì)接口編程的特點(diǎn),我們可以編寫自己的Provider來替換掉默認(rèn)的Provider從而實(shí)現(xiàn)功能擴(kuò)展。微軟提供的默認(rèn)實(shí)現(xiàn)可以很好的工作在大部分場(chǎng)景中,而且如果將來有必要升級(jí)到自己的方案,也無需對(duì)程序做出大量改動(dòng)。

XML格式的配置文件清晰易讀,并且提供了豐富的配置選項(xiàng),可以方便的設(shè)置密碼最小長(zhǎng)度,密碼最大錯(cuò)誤次數(shù),是否允許找回密碼、是否允許重置密碼等多種參數(shù)。

3 將權(quán)限控制與MVC架構(gòu)結(jié)合

不同于ASP.NET WEB應(yīng)用程序,在MVC3架構(gòu)下,URL與物理頁(yè)面之間不再存在一一對(duì)應(yīng)關(guān)系。MVC3架構(gòu)中URL要首先經(jīng)過路由(Router)處理,分析之后通過路由規(guī)則匹配到對(duì)應(yīng)的Controller,由Controller負(fù)責(zé)呈現(xiàn)頁(yè)面。而路由規(guī)則是可以經(jīng)常變化的。以往在ASP.NET WEB應(yīng)用程序中對(duì)頁(yè)面設(shè)置訪問權(quán)限的辦法已經(jīng)不再適用。所以我們現(xiàn)在使用過濾器(Filter)來給用戶授權(quán)。

最常用的權(quán)限過濾器是[Authorize],用于Controller類或者Controller方法上,表示此類中的所有方法或者某個(gè)方法只有通過驗(yàn)證的用戶才能調(diào)用。加入?yún)?shù)之后如[Authorize(Roles=”Admin”)]表示只有屬于Admin用戶組的用戶才可以調(diào)用此方法。Authorize過濾器可以被繼承,方便開發(fā)者編寫自己的授權(quán)方法。使用過濾器來進(jìn)行訪問控制是AOP編程在WEB開發(fā)中的經(jīng)典模型。

4 結(jié)語(yǔ)

ASP.NET MVC3向廣大開發(fā)者提供了不用編寫復(fù)雜代碼就可以使用的功能全面的基于角色的用戶訪問控制方案。這套方案的擴(kuò)展性也相當(dāng)好,如果掌握了自定義Provider和Filter的編寫方法,完全可以實(shí)現(xiàn)更多的高級(jí)功能,滿足各種業(yè)務(wù)場(chǎng)景的需要。

[參考文獻(xiàn)]

[1]Adam Freeman,Steven Sanderson. Pro ASP.NET MVC3 Framework Third Edition,Apress,2011.

主站蜘蛛池模板: 亚洲一级毛片在线观| 欧美日韩第三页| 亚洲精品日产精品乱码不卡| 亚洲中文精品人人永久免费| 亚洲青涩在线| 国产美女一级毛片| 97超碰精品成人国产| 91在线播放国产| 香蕉国产精品视频| 香蕉综合在线视频91| 国产杨幂丝袜av在线播放| 四虎精品黑人视频| 91福利免费视频| 国产成人在线无码免费视频| 欧美第九页| 成年人国产网站| 婷婷六月在线| 色综合久久88| 国产男人的天堂| 成人一级免费视频| 日日拍夜夜操| 欧美成人日韩| 欧美 国产 人人视频| 91麻豆精品国产高清在线| 亚洲欧美另类色图| 少妇极品熟妇人妻专区视频| 人禽伦免费交视频网页播放| 久久综合九九亚洲一区| 久久一级电影| 中文字幕亚洲第一| 男人天堂伊人网| av色爱 天堂网| 麻豆国产在线观看一区二区| 久久综合色视频| 久久久久无码国产精品不卡| 毛片网站免费在线观看| 亚洲欧州色色免费AV| 国产区91| 香蕉精品在线| 国产精品女主播| 久久窝窝国产精品午夜看片| 97se亚洲综合不卡 | 九九热精品视频在线| 99成人在线观看| 欧美精品v欧洲精品| 亚洲av无码专区久久蜜芽| 性欧美精品xxxx| 欧美日韩另类国产| 91久久国产成人免费观看| 亚洲天堂网在线视频| 欧美日韩高清在线| 免费不卡视频| 激情午夜婷婷| 国产福利免费在线观看| 亚洲欧洲国产成人综合不卡| 亚洲手机在线| 找国产毛片看| 欧美一级夜夜爽www| 伊人久久精品无码麻豆精品| 亚洲激情区| 国产成人凹凸视频在线| 亚洲国产中文精品va在线播放| 日韩在线网址| 国产成人精品日本亚洲77美色| 国产一线在线| 亚洲有无码中文网| 国产欧美在线视频免费| 欧美精品啪啪一区二区三区| 免费高清a毛片| 免费欧美一级| 中文字幕调教一区二区视频| 91精品国产丝袜| 国产本道久久一区二区三区| 中文字幕调教一区二区视频| 2020极品精品国产| 欧美色视频在线| 在线播放国产一区| 日韩视频免费| 色综合五月婷婷| 中字无码av在线电影| 欧美一区二区精品久久久| 国产免费久久精品99re不卡|