读书人

关于MVC的IAuthorizationFilter验证

发布时间: 2012-12-17 09:31:40 作者: rapoo

关于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就没有了?

用什么替代了吗?
[其他解释]

引用:
filterContext.HttpContext.Response.End();
这个试试呢


这个我试过了,只是不显示页面内容了,但是Action的还是运行的。。。
[其他解释]


又没人回~

看来大家都不用 Asp.net mvc啊

嘎嘎

我用了用 感觉很像 ROR
[其他解释]
引用:
呵呵
filterContext.Result = new EmptyResult();


谢谢~


正解
[其他解释]
引用:
引用:
呵呵
filterContext.Result = new EmptyResult();


谢谢~


正解


我看未必是正解。

filterContext.Result = new HttpUnauthorizedResult( );

这才是正道。
[其他解释]
遇到类似问题,应该7楼为正解。
[其他解释]
filterContext.Result = new EmptyResult();
以上http状态为200


filterContext.Result = new HttpUnauthorizedResult( );
以上http状态为401

都可以阻止Action执行

如果是权限限制 401的更专业

读书人网 >asp.net

热点推荐