2013-09-04 9 views
6

私のMVCアプリケーションでは、HttpUnauthorizedResultクラスを呼び出し、statusDescriptionパラメータを指定します。HttpUnauthorizedResultのステータス説明を使用

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(); 
} 

私の質問は、私はステータスDescriptonパラメータを利用するか、アクセス拒否ビューでこれらの詳細を表示するにはいいだろう方法です。

答えて

1

同じ問題があります。 Viewbagを設定することができないため、TempDataを使用してメッセージを設定しました。

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

HttpUnauthorizedResult iが(エラー)メッセージを確認アカウントコントローラのログインアクションに私をリダイレクトします。

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