我在我的ASP.NET MVC控制器上使用自定義授權篩選器,如果用戶在特定操作上未通過授權,則會將用戶重定向到登錄屏幕以外的其他URL。如何處理返回ViewResult以外結果的操作的授權?
這對返回視圖的操作是可以的,但我的許多操作返回其他結果類型,如PartialResult或JsonResult。
我現在的過濾器看起來像這樣:
< AuthorizeWithRedirect(角色:= 「ServerAccess」,控制器:= 「家」,動作:= 「未經授權」)>
這表明如果用戶不在ServerAccess角色那麼他們應該被重定向到/家/未經授權/
我很好奇其他人如何處理這個?當您考慮只打算由客戶端腳本AJAX調用調用的操作數時,這看起來特別有問題。/Home/Unauthorized/action如何知道調用者是否打算接收視圖,partialview,json,內容等?
第一個選項是我現在採用的路線,每個ActionResult類型都有一個控制器動作,即UnauthorisedPartial,UnauthorisedJSON。它允許我編寫一個標準頁面並將其返回給任何調用者。 – Nick 2009-09-25 08:44:08