如果用戶已登錄並且設置了ChangePasswordRequired標誌,則需要忽略當前操作並將其重定向到ChangePassword操作。我需要根據某些條件重新路由動作
換句話說,我不希望用戶能夠做任何事情,直到他或她改變他或她的密碼。
我的基地控制器應該覆蓋哪種方法,我應該如何處理重定向?
如果用戶已登錄並且設置了ChangePasswordRequired標誌,則需要忽略當前操作並將其重定向到ChangePassword操作。我需要根據某些條件重新路由動作
換句話說,我不希望用戶能夠做任何事情,直到他或她改變他或她的密碼。
我的基地控制器應該覆蓋哪種方法,我應該如何處理重定向?
您應該創建自己的操作過濾器。
要使用操作篩選的確切類型是一個實現IAuthorizationFilter
和你想使用它的OnAuthorizing()
或關閉的方法。該過濾器類型在所有其他過濾器之前執行。
而不是[Authorize]
過濾器,你會使用自己的過濾器。務必使你的國旗檢查和用戶是否被認證(Request.IsAuthenticated
)
善良,
丹
我會使用一個actionfilter,你添加到每個控制器類應該實現這種行爲。您可以通過Phil Haack在blog post上閱讀更多內容
如果我走這條路,我一定要裝點每一個的ActionResult方法與我的篩選器屬性或我可以用它裝飾我的底座控制器嗎? 與你的建議和重寫OnActionExecuting和改變ActionResult那裏有什麼區別? – 2009-09-17 20:26:13
您可以在Global.asax中進行設置。 GlobalConfiguration類 – 2013-02-25 20:09:35
對不起,對於Web API,您應該使用GlobalFilters類 – 2013-02-25 20:18:39