关于MVC的IAuthorizationFilter,验证失败怎么停止运行Action?
采用 IAuthorizationFilter 做一个类权限验证
比如说
访问的 是 /Home/Check/4
这时 在运行 Action “Check”之前会运行实现IAuthorizationFilter的filter,而在这个filter中做一个验证,并且失败了,不想再继续运行 Action "Check"了,我要怎么终止呢?
在public void OnAuthorization(AuthorizationContext filterContext)中
filterContext 没有什么 Cancel的属性啊~
怎么停止运行呢?
谢谢。
------最佳解决方案--------------------呵呵
filterContext.Result = new EmptyResult();
------其他解决方案--------------------filterContext.HttpContext.Response.End();
这个试试呢
------其他解决方案--------------------不解
为什么 MVC1.0里面 在public void OnAuthorization(AuthorizationContext filterContext)中
filterContext 有就有一个cancel属性 来停止接下来的Action运行。
为什么2.0就没有了?
用什么替代了吗?
------其他解决方案--------------------
这个我试过了,只是不显示页面内容了,但是Action的还是运行的。。。
------其他解决方案--------------------?
又没人回~
看来大家都不用 Asp.net mvc啊
嘎嘎
我用了用 感觉很像 ROR
------其他解决方案--------------------
谢谢~
正解
------其他解决方案--------------------
我看未必是正解。
filterContext.Result = new HttpUnauthorizedResult( );
这才是正道。
------其他解决方案--------------------遇到类似问题,应该7楼为正解。
------其他解决方案--------------------filterContext.Result = new EmptyResult();
以上http状态为200
filterContext.Result = new HttpUnauthorizedResult( );
以上http状态为401
都可以阻止Action执行
如果是权限限制 401的更专业