2013-09-04 2 views
6

In meiner MVC-Anwendung rufe ich die HttpUnauthorizedResult-Klasse auf und spezifiziere den statusDescription-Parameter.Verwenden der Statusbeschreibung für HttpUnauthorizedResult

if (!canAdd) { 
    return new HttpUnauthorizedResult("You do not have access to add"); 
} 

Dies leitet mich auch die Login-Methode auf dem AccountController und ich leite sie dann auf den entsprechenden Bildschirm.

public ActionResult Login(string returnUrl) 
{ 
if (WebSecurity.IsAuthenticated) 
{ 
    return RedirectToAction("AccessDenied"); 
} 
    ViewBag.ReturnUrl = returnUrl; 
    return View(); 
} 

Meine Frage ist, wie kann ich die Vorzüge des Status Descripton Parameter, wäre es schön, diese Details in der AccessDenied Ansicht anzuzeigen.

Antwort

1

Bekam das gleiche Problem. Ich habe die TempData verwendet, um eine Nachricht zu setzen, weil es nicht möglich ist, einen Viewbag zu setzen.

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

Die HttpUnauthorizedResult leitet mich auf die Login-Aktion von meinem Konto-Controller, wo ich überprüfen (Fehler-) Meldungen:

if (TempData.Count > 0) 
{ 
    var message = TempData["message"]; 
    ModelState.AddModelError("", message.ToString()); 
} 
Verwandte Themen