HttpUnauthorizedResult

HttpUnauthorizedResult

在我的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 View 中显示这些详细信息。

最佳答案

遇到了同样的问题。
我使用TempData设置消息,因为无法设置Viewbag。

filterContext.Controller.TempData["message"] = "Access Denied";
filterContext.Result = new HttpUnauthorizedResult();

HttpUnauthorizedResult将我重定向到我的帐户Controller的登录操作,在该操作中我检查(错误)消息:
if (TempData.Count > 0)
{
    var message = TempData["message"];
    ModelState.AddModelError("", message.ToString());
}

关于asp.net-mvc - 在HttpUnauthorizedResult上使用状态描述,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18605318/

10-10 09:28