在我的MVC应用程序中,我调用HttpUnauthorizedResult类并指定statusDescription参数。
if (!canAdd) {
return new HttpUnauthorizedResult("You do not have access to add");
}
这也重定向了AccountController上的Login方法,然后我将它们重定向到相应的屏幕。
public ActionResult Login(string returnUrl)
{
if (WebSecurity.IsAuthenticated)
{
return RedirectToAction("AccessDenied");
}
ViewBag.ReturnUrl = returnUrl;
return View();
}
我的问题是如何利用Status Descripton参数,在AccessDenied视图中显示这些详细信息会很好。
答案 0 :(得分:1)
遇到同样的问题。 我使用TempData来设置消息,因为无法设置Viewbag。
filterContext.Controller.TempData["message"] = "Access Denied";
filterContext.Result = new HttpUnauthorizedResult();
HttpUnauthorizedResult将我重定向到我的帐户控制器的登录操作,我检查(错误)消息:
if (TempData.Count > 0)
{
var message = TempData["message"];
ModelState.AddModelError("", message.ToString());
}