1

我正在尝试为MVC 4应用程序创建自定义错误页面。但我似乎无法找到合适的参考资料来了解它。

我有一个具体的要求。这与Unauthorized access错误有关。假设我有一组页面,只有特定类型的用户才能访问。输入Admin的用户有权访问管理页面,但输入的用户Basic没有。

所以我想要做的是,如果类型的用户Basic已登录到网站并且如果他们尝试访问管理页面,而不是将它们扔到登录页面,则会在错误页面中显示一条消息。

谁能帮助我如何实现这一目标?

4

1 回答 1

1

异常过滤器怎么样?

 [HandleError(Exception = typeof(UnauthorizedAccessException), View = "MyErrorPage")]
 public class MyController { }

我目前无法对此进行测试,如果这不起作用,请告诉我,我将为此创建一个自定义过滤器。

更新

由于您已经创建了自己的自定义属性,因此您可以通过以下方式将信息从您的属性传递到您的视图TempData

 public void OnAuthorization(AuthorizationContext filterContext)
 {
     //Note you could assign a complex type here, let's just assign a string
     filterContext.Controller.TempData["ErrorDetails"] = "Here are my details"; 

     // Redirect to an "Unauthorized" controller
     filterContext.HttpContext.Response.Redirect(urlHelper.Action("Index", "Unauthorized"), true);
于 2013-09-19T15:52:51.870 回答