2009-11-20 51 views
0

我想在asp.net mvc中使用ActionFilterAttribute。我想要做的是检查用户订阅是否已过期,如果是的话,我想将用户重定向到一个页面,如果没有,则不做任何事情。如何返回ActionFilterAttribute中的某些内容?

但是你可以覆盖的方法都是无效的。那么,我该如何做到这一点?就像我甚至不知道如何单元测试它,因为它是无效的。

public override void OnActionExecuting(ActionExecutingContext filterContext) 

回答

0

我想你想要的是一个授权过滤器:

public override void OnAuthorization(AuthorizationContext filterContext) 
{ 
    if (...subscriptionExpired...) 
    { 
     filterContext.Cancel = true; 
     filterContext.Result = new RedirectResult("/user/login"); 
    } 
} 
+0

嗯,我希望能打破它,但我想我能看个明白。为什么你仍然必须将其设置为取消?你不能只重定向? – chobo2 2009-11-20 23:35:21

+0

我也不想'重写OnAuthorization – chobo2 2009-11-21 00:20:53

+0

@ chobo2:为什么不呢?这就是做到这一点的原因 - 为什么坚持**而不是**这样做?动机是什么? – 2009-11-21 08:45:12

相关问题