MVC用filter的簡單應用[轉]


MVC用filter應用


Admin
2012年7月26日

 

MVC用filter做權限過濾:查看原文

1:創建filter類;類須要持續一個接口,並且重寫4個辦法;如下:

 1 namespace MvcApplication1.Code
 2 {
 3     public class paramFilter:System.Web.Mvc.ActionFilterAttribute
 4     {
 5         public override void OnActionuted(System.Web.Mvc.ActionutedContext filterContext)
 6         {
 7             base.OnActionuted(filterContext);
 8         }
 9 
10 
11         public override void OnActionuting(System.Web.Mvc.ActionutingContext filterContext)
12         {
13            if(filterContext.HttpContext.Request.QueryString["k"]=="go"14            {
15                string retUrl = filterContext.RouteData.GetRequiredString("controller") + "/" + filterContext.RouteData.GetRequiredString("action");
16                filterContext.HttpContext.Response.Redirect("http://" + filterContext.HttpContext.Request.Url.Host + ":" + filterContext.HttpContext.Request.Url.Port.ToString() + "/" + retUrl);
17            }
18         }
19 
20 
21         public override void OnResultuted(System.Web.Mvc.ResultutedContext filterContext)
22         {
23             base.OnResultuted(filterContext);
24         }
25 
26 
27         public override void OnResultuting(System.Web.Mvc.ResultutingContext filterContext)
28         {
29             base.OnResultuting(filterContext);
30         }
31     }
32 }

重視:此中 filterContext對象是 從頁面傳過來的。

獲取頁面controller值的辦法是  filterContext.RouteData.GetRequiredString("controller")
獲取頁面action值的辦法是: filterContext.RouteData.GetRequiredString("action")
轉到其他頁面的辦法是:  filterContext.HttpContext.Response.Redirect()I
ip: filterContext.HttpContext.Request.Url.Host  
端口:filterContext.HttpContext.Request.Url.Port.ToString()

2:在須要過濾的controller上加上一句代碼即可:  

1   [Code.paramFilter]
2         public ActionResult Index()
3         {
4           
5             return View();
6         }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章