使用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