2009-11-20 58 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

相關問題