我的网站对所有人开放,但我有一个 Controller ,其中包含一些只有拥有用户名和密码的管理员才能进入的方法。我正在保存 bool 值 IsManager
在 session
.
我想使用授权属性来阻止任何人 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);
}
}
然后在受限操作(或 Controller )上方使用它:
//[TheFilter]
public class ManagersController : Controller
{
[TheFilter]
public ActionResult Foo()
{
...
return View();
}
}
关于asp.net-mvc - mvc 3 session 和授权属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809703/