1. 程式人生 > >MVC中ActionFilterAttribute用法並實現統一授權

MVC中ActionFilterAttribute用法並實現統一授權

http://blog.sina.com.cn/s/blog_78106bb10102v9b5.html

MVC中ActionFilterAttribute經常用來處理許可權或者統一操作時的問題。

先寫一個簡單的例子,如下:

比如現在有一個使用者管理中心,而這個使用者管理中心需要登入授權後才能進去操作或瀏覽資訊,這個時候我們不可能每一個頁面都寫一遍許可權的判斷,這個時候就需要我們進行統一判斷許可權,那麼怎麼統一許可權呢?如果你瞭解MVC那麼下面的程式碼應該很容易看懂,否則還是先看一下MVC基礎吧。

1.建立一個類(用來檢查使用者是否登入和使用者許可權)程式碼如下:

    // 過濾器
    public class MemberCheckAttribute : ActionFilterAttribute
    {
        //執行Action之前操作


        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
           //判斷是否登入或是否用許可權,如果有那麼就進行相應的操作,否則跳轉到登入頁或者授權頁面
            if (true)
            {
                //處理Action之前操作內容根據我們提供的規則來定義這部分內容

                base.OnActionExecuting(filterContext);
            }
            else
            {

                //跳轉到登入頁面
                filterContext.HttpContext.Response.Redirect("/login.html");
            }
        }

2.頁面程式,也就是控制器裡的程式,如下

//MemberCheck是擴充套件特性,自定義特性名稱是根據上面的類MemberCheckAttribute名進行變化

//當訪問/user/index時,程式會先走自定義特性MemberCheck然後再走Index

[MemberCheck]
public class UserController : Controller
{

       public ActionResult Index()
        {
            return View();
        }

}

解釋:ActionFilterAttribute有一下經常用到的方法

OnActionExecuted  在執行操作方法後由 MVC 框架呼叫。
OnActionExecuting  在執行操作方法之前由 MVC 框架呼叫。
OnResultExecuted  在執行操作結果後由 MVC 框架呼叫。
OnResultExecuting  在執行操作結果之前由 MVC 框架呼叫。

相關推薦

MVCActionFilterAttribute用法實現統一授權

http://blog.sina.com.cn/s/blog_78106bb10102v9b5.html MVC中ActionFilterAttribute經常用來處理許可權或者統一操作時的問題。 先寫一個簡單的例子,如下: 比如現在有一個使用者管理中心,而這個使用

MVC學習筆記:MVC實現用戶登錄驗證ActionFilterAttribute用法實現統一授權

重置 ids filter .config detail close login out gif 在項目下新建一個文件夾來專門放過濾器類,首先創建一個類LoginFilter,這個類繼承ActionFilterAttribute。用來檢查用戶是否登錄和用戶權限。: u

MMVVC設計方法介紹:經典MVC設計模式在Cocoa-MVC的一種實現方法

MVC介紹 MVC在WEB開發中用於界定工作屬於Server端還是WEB前端還是十分清晰的。這也就是大家目前常見的MVC設計模式: View<===>Controller<===>Model 即Controller作為粘合劑分別於View和Model進行雙向通訊。

如何ScrollView在XIB或者Storyboard設定約束實現翻頁滾動效果

使用XIB對檢視進行約束非常簡單,也很方便,節省了很多程式碼量,這是眾所周知的事情!但是UIScrollView的約束在XIB裡面比較複雜,而且有時候對它進行約束會經常出錯,當然,這是對你沒有在SV(以下UIScrollView簡稱)上放置別的檢視來說,假如你要

JS方式實現百度地圖載入資料庫的座標實現動態重新整理

"); //設定地圖顯示的城市,這項是必須的map.enableScrollWheelZoom(true); //開啟滑鼠滾輪縮放var gPoints = [];Ext.Ajax.request({url : 'coords.do?method=getCoords',params : {},success

Redis的安裝、使用以及php擴充套件redis實現php操作redis的一個例子

1、下載原始碼包redis-2.8.21.tar.gz,並將其上傳到指定目錄/urs/src,然後對其進行解壓: [[email protected] src]# tar -xvf redis-2.8.21.tar.gz 進入解壓後的目錄,並執行下面命令,指定安裝

JQuery條件下使用 JS方式實現百度地圖載入資料庫的座標實現動態重新整理

功能:藉助JQuery,使用 JS 方式實現後臺載入座標資料然後顯示在百度地圖上,並每隔5秒重新整理一次資料。 對不同點使用不同的圖示進行標註,比如上傳時間大於半小時的點標記為紅色圖示,說明資料不實時, 對上傳時間短於半小時的,則用綠色的點表示正在運動的目標,藍色的點表示靜

PHP MVCRBAC的最佳實現方案的比較

個人認為的PHP MVC框架中實現RBAC的原理 順序: 資料表 1.tb_user(id,uname,roleid) 2.tb_role(roleid,rolename) 3.tb_module(moduleid,moudulename,mvc_url) 4.tb_a

Spring.net 在mvc用法

1.      引dll檔案:Common.Loggong ,Spring.Core,Spring.Web ,Spring.Web.Mvc3 2.      Global中public classMvcApplication : Spring.Web.Mvc.SpringM

使用HttpURLConnection呼叫url方式訪問spring mvc的controller傳json值與返回

package com.zl.test2; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import jav

centos安裝tomcat7,實現web程式的熱部署

安裝前先檢查jdk是否安裝,如果沒有安裝,則先安裝jdk [root@tomcat home]# java -version java version "1.6.0_33" OpenJDK Runtime Environment (IcedTea6 1.1

【 iview 實踐指南】之在Table使用 InputNumber 實現列求和

view NPU 業務 www. 行數據 影響 實現 table 根據 先看一下實際需求: 這裏需要針對“非農保費計劃指標”做列求和; 本文以(https://www.cnblogs.com/likwin/p/10572203.html)為基

ASP.Net Core 5.0 MVCAOP思想的體現(五種過濾器)結合專案案例說明過濾器的用法

執行順序    使用方法,首先實現各自的介面,override裡面的方法, 然後在startup 類的 ConfigureServices 方法,註冊它們。 services.AddTransient(typeof(MyAction));

MVC根據後臺絕對路徑讀取圖片顯示在IMG

copy ret execute ble 操作文件 初學者 實體類 cin jpeg 數據庫存取圖片並在MVC3中顯示在View中 根據路徑讀取圖片: 1 byte[] img = System.IO.File.ReadAllBytes(@"d:\x

在ASP.NET MVC利用Aspose.cells 將查詢出的數據導出為excel,在瀏覽器下載。

width tdi 新增 column 需求 options 解決 印象 ats 正題前的嘮叨 本人是才出來工作不久的小白菜一顆,技術很一般,總是會有遇到一些很簡單的問題卻不知道怎麽做,這些問題可能是之前解決過的。發現這個問題,想著提升一下自己的技術水平,將一些學的新的‘好

asp.net MVC Session統一驗證的方法

pla sta tails project ssi 一個 str urn string 驗證登錄狀態的方法有:1 進程外Session 2 方法過濾器(建一個類繼承ActionFilterAttribute)然後給需要驗證的方法或控制器加特性標簽 3 :新建一個Ba

html提交表單實現不跳轉頁面處理返回值

html value put 提示 pan sdn type detail all <html> <head> <script type="text/javascript" src="h

Spring MVC@RequestParam/@RequestBody/@RequestHeader的用法收集(轉)

writer) public target load spa ive com query 我們 簡介: handler method參數綁定常用的註解,我們根據他們處理的Request的不同內容部分分為四類:(主要講解常用類型) A、處理requet uri部分(這裏指

.NET MVC登陸授權過濾器的使用

== dir oid erb 說明 author lin ide lob 1、寫個類LoginAuthorityAttribute,繼承自AuthorizeAttribute using System; using System.Collections.Generi

在AD如何實現統一桌面

實現 背景 e30 驗證 並且 圖片 blog 運行 環境 實驗環境,在公司中,老板要求市場部電腦都用統一的桌面,這時可以用AD域的組策略。實驗步驟:一:找到作為背景桌面的圖片,放到文件夾,並且共享,設置共享權限。二:打開組策略管理四:打開組策略管理後,右擊在這個域中新建G