我正在尝试为MVC 4
应用程序创建自定义错误页面。但我似乎无法找到合适的参考资料来了解它。
我有一个具体的要求。这与Unauthorized access
错误有关。假设我有一组页面,只有特定类型的用户才能访问。输入Admin
的用户有权访问管理页面,但输入的用户Basic
没有。
所以我想要做的是,如果类型的用户Basic
已登录到网站并且如果他们尝试访问管理页面,而不是将它们扔到登录页面,则会在错误页面中显示一条消息。
谁能帮助我如何实现这一目标?
我正在尝试为MVC 4
应用程序创建自定义错误页面。但我似乎无法找到合适的参考资料来了解它。
我有一个具体的要求。这与Unauthorized access
错误有关。假设我有一组页面,只有特定类型的用户才能访问。输入Admin
的用户有权访问管理页面,但输入的用户Basic
没有。
所以我想要做的是,如果类型的用户Basic
已登录到网站并且如果他们尝试访问管理页面,而不是将它们扔到登录页面,则会在错误页面中显示一条消息。
谁能帮助我如何实现这一目标?
异常过滤器怎么样?
[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);