1
在Umbraco项目中,我有一个控制器,要求用户在一个特定的角色,以及与许多子操作的视图。当访问权限不足的用户尝试访问该页面时,他们应该会看到一条错误消息。 SOFAR我创建了一个定制的授权属性是这样的:ASP.NET MVC - 如何停止呈现视图childactions上的自动回复错误
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.Result = new HttpUnauthorizedResult();
}
else if (!AuthorizeCore(filterContext.HttpContext))
{
ViewDataDictionary viewData = new ViewDataDictionary();
viewData.Add("AuthenticationeError", "You do not have sufficient permissions to view this content.");
filterContext.Result = new ViewResult { ViewName = "~/Views/AuthError.cshtml", ViewData = viewData };
}
}
它的工作,虽然与下面的错误。在页面加载时,视图会从安全控制器中调用三个不同的子操作,并且每次执行此操作时都会显示一个新的授权错误ViewResult。这种行为可以停止吗?我想只呈现一个错误消息,并在第一个错误后停止进一步的视图处理。此外,我希望用户留在同一页面,并尽可能避免重定向