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

首頁(yè) > 編程 > .NET > 正文

淺析ASP.NET MVC :MVC頁(yè)面驗(yàn)證與授權(quán)_.Net教程

2024-07-10 12:51:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

推薦:解析.NET Framework 新功能和增強(qiáng)的功能
ASP.NET 移動(dòng)控件(原來(lái)為 Microsoft Mobile Internet Toolkit)擴(kuò)展了 .NET Framework 和 Visual Studio .NET,提供了對(duì)移動(dòng)電話和個(gè)人數(shù)據(jù)助理 (PDA) 等移動(dòng)(無(wú)線)設(shè)備的支持。.NET Framew

在ASP.NET MVC中,如何來(lái)實(shí)現(xiàn)表單的驗(yàn)證與授權(quán)訪問(wèn)呢?至少在CTP3中,還沒(méi)有一個(gè)官方的解決方案。ASP.NET WebForm的表單驗(yàn)證和授權(quán)機(jī)制是否適合在ASP.NET MVC中使用呢?帶著這些問(wèn)題來(lái)進(jìn)入我們今天的主題。
在ASP.NET WebForm的架構(gòu)下,我們可以通過(guò)一定的配置即可實(shí)現(xiàn)用戶身份驗(yàn)證和授權(quán)。特別是在ASP.NET 2.0的Membership功能的支撐下,可以做到更加簡(jiǎn)潔可復(fù)用的用戶驗(yàn)證系統(tǒng)。通過(guò)web.config可以做到對(duì)頁(yè)面或目錄對(duì)不同用戶身份可見(jiàn)性的定制,但是它是基于物理文件和目錄。而在ASP.NET MVC架構(gòu)下,用戶訪問(wèn)的每一個(gè)頁(yè)面在磁盤(pán)中并沒(méi)有一個(gè)固定的物理文件,它是通過(guò)Controller控制數(shù)據(jù)與視圖的組合來(lái)生成HTML代碼,進(jìn)而向客戶端輸出。那么我們?cè)撊绾蝸?lái)復(fù)用已有的表單驗(yàn)證授權(quán)機(jī)制呢?

在MVC中,請(qǐng)求的功能入口是Controller相應(yīng)的Action函數(shù),我們可以在函數(shù)執(zhí)行前去控制請(qǐng)求權(quán)限。在ASP.NET MVC Preview 2后,提供了一個(gè)機(jī)制讓我們可以對(duì)Action的AOP攔截,這個(gè)接口定義如下: public interface IActionFilter

以下為引用的內(nèi)容:
{
void OnActionExecuted(ActionExecutedContext filterContext);
void OnActionExecuting(ActionExecutingContext filterContext);
void OnResultExecuted(ResultExecutedContext filterContext);
void OnResultExecuting(ResultExecutingContext filterContext);
}

我們有兩種方式來(lái)實(shí)現(xiàn)攔截,一種我們可以通過(guò)定義Attribute來(lái)實(shí)現(xiàn)攔截的功能,在System.Web.Mvc程序集中有一個(gè)ActionFilterAttribute抽象類(lèi),通過(guò)重寫(xiě)這個(gè)抽象類(lèi)的這些虛方法,我們就可以實(shí)現(xiàn)對(duì)特定的執(zhí)行過(guò)程進(jìn)行攔截。

另一種方法,我們注意到Controller這個(gè)類(lèi)也實(shí)現(xiàn)了IActionFilter這個(gè)接口,并且也提供了這四個(gè)函數(shù)的虛擬方法定義。框架內(nèi)部,在調(diào)用Action方法的時(shí)候同時(shí)來(lái)調(diào)用這些攔截方法。具體的可以參考:ControllerActionInvoker 這個(gè)類(lèi)的實(shí)現(xiàn),所有的Action的調(diào)用都在這個(gè)類(lèi)當(dāng)中被實(shí)現(xiàn)。所以我們只要重寫(xiě)Controller里這四個(gè)虛方法,也可完成本Controller面的所有Action的攔截。

在這里,我也找到了國(guó)外友人已經(jīng)實(shí)現(xiàn)好的基于角色的MVC權(quán)限控制的方案。

分享:.NET教程之ASP.NET緩存方法分析和實(shí)踐示例
盡早緩存;經(jīng)常緩存 您應(yīng)該在應(yīng)用程序的每一層都實(shí)現(xiàn)緩存。向數(shù)據(jù)層、業(yè)務(wù)邏輯層、UI 或輸出層添加緩存支持。內(nèi)存現(xiàn)在非常便宜 ― 因此,通過(guò)以智能的方式在整個(gè)應(yīng)用程序中實(shí)現(xiàn)緩存,

共2頁(yè)上一頁(yè)12下一頁(yè)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云林县| 博白县| 石屏县| 宁南县| 鹤山市| 翁源县| 泸定县| 延边| 保靖县| 道孚县| 满城县| 泗阳县| 安新县| 涞水县| 民权县| 南康市| 丹阳市| 建始县| 宜丰县| 广元市| 西乌珠穆沁旗| 贵州省| 长岛县| 普兰县| 耒阳市| 黑河市| 平泉县| 达孜县| 江城| 汨罗市| 桂阳县| 成都市| 昭苏县| 巴塘县| 泰州市| 大厂| 嘉祥县| 华池县| 庆云县| 平果县| 德格县|