mas*_*idi 4 asp.net-mvc authorize-attribute asp.net-mvc-3
我的网站对所有人开放,但我有一个控制器,有一些方法,只有具有用户和密码的经理可以进入.我节省了布尔IsManager的session.
我想使用authorize属性阻止谁IsManager == false.
首先定义一个ActionFilter:
public class TheFilter: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var session = filterContext.HttpContext.Session;
if ((bool?)session["IsManager"] == true)
return;
//Redirect him to somewhere.
var redirectTarget = new RouteValueDictionary
{{"action", "{ActionName}"}, {"controller", "{ControllerName}"}};
filterContext.Result = new RedirectToRouteResult(redirectTarget);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在受限制的Action(或控制器)上方使用它:
//[TheFilter]
public class ManagersController : Controller
{
[TheFilter]
public ActionResult Foo()
{
...
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5817 次 |
| 最近记录: |