使用ASP.Net MVC 2,有沒有什麼辦法在基於AuthorizeAttribute
類的類中使用Controller類的RedirectToAction()方法?是否可以在自定義的AuthorizeAttribute類中使用RedirectToAction()?
public class CustomAttribute : AuthorizeAttribute {
protected override bool AuthorizeCore(HttpContextBase context) {
// Custom authentication goes here
return false;
}
public override void OnAuthorization(AuthorizationContext context) {
base.OnAuthorization(context);
// This would be my ideal result
context.Result = RedirectToAction("Action", "Controller");
}
}
我正在尋找一種方式來重新將用戶引導到一個特定的控制器/行動時,他們失敗的驗證,而不是將其返回到登錄頁面。是否有可能爲該控制器/操作生成重定向URL,然後使用RedirectResult()?我試圖避免對網址進行硬編碼的誘惑。
謝謝,這是有效的。使用HandleUnauthorizedRequest的好處 - 我使用的是OnAuthorization,因爲我在另一個教程/討論中看到它(他們有一個自定義屬性,當認證失敗時會觸發重定向)。 – 2010-03-18 20:15:08
@LanceMcNearney我會在參數filterContext中傳遞什麼? – Pomster 2013-07-12 09:51:18
@Craig Stuntz我作爲filterContext傳入什麼? – Pomster 2013-07-12 09:53:26