2013-09-04 9 views
6

W mojej aplikacji MVC wywołuję klasę HttpUnauthorizedResult i określam parametr statusDescription.Używanie opisu stanu w HttpUnauthorizedResult

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

To przekierowuje mnie również metodę logowania na AccountController, a następnie przekierowuję je na odpowiedni ekran.

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

Moje pytanie brzmi: w jaki sposób mogę skorzystać z parametru Stan Descripton, że byłoby miło, aby wyświetlić te dane w widoku AccessDenied.

Odpowiedz

1

Mam ten sam problem. Użyłem TempData do ustawienia wiadomości, ponieważ nie jest możliwe ustawienie Viewbag.

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

HttpUnauthorizedResult przekierowuje mnie do działania logowania mojego konta kontrolera gdzie mogę sprawdzić na (błąd) wiadomości:

if (TempData.Count > 0) 
{ 
    var message = TempData["message"]; 
    ModelState.AddModelError("", message.ToString()); 
} 
Powiązane problemy