方法一 : 1.創建一個全局action過濾器 (在appstart 的filterconfig中註冊 filters.Add(new LoginAttribute());) 2.不需要登錄的contoller或者action 則在該類或者action上添加該過濾器特性 (isNeed=false) ...
方法一 : 1.創建一個全局action過濾器 (在appstart 的filterconfig中註冊 filters.Add(new LoginAttribute());)
2.不需要登錄的contoller或者action
則在該類或者action上添加該過濾器特性 (isNeed=false)
方法二: 1.創建一個filter 不在全局註冊
2. 創建 一個baseControler ,然後再basecontroller上邊添加該filter特性
3.需要登錄的則繼承該basecontroller,不需要登錄的則不繼承該basecontroller
補充:若是不想建baseControler ,怎可以直接在Controller控制器上或者Action方法上加自定義的過濾器
註意: 1.OnActionExecuting 中 base.OnActionExecuting(filterContext);
如果當前項目有多個filter則加上 base.OnActionExecuting(filterContext);
不添加則不會執行其他的filter
2.filterContext.Result = new RedirectResult("/User/login");
在filter裡邊頁面跳轉用 filterContext.Result = new RedirectResult("/User/login");
如果用filterContext.HttpContext.Response.Redirect("/User/login"); 則在跳轉後還會繼續執行 後邊的action
eg: home/index 跳轉user/login 後,還會接著執行index/action 裡邊的方法