C# を使用する MVC 3 では、検証されていない特定のメソッドをリダイレクトしたいと考えています。ただし、これは機能していないようです。
private ActionResult m_VerifyLogin()
{
if (Session["isLogged"] == null || (int)Session["isLogged"] != 1)
{
return RedirectToAction("Index", "Home");
}
return View();
}
私に何ができるか知っている人はいますか?ActionFilterAttribute を作成する場合でも、非常にシンプルにしたいと思います!
- 編集 -
皆さんの回答に感謝します。あなたが尋ねたことのいくつかを試してみたところ、テストの結果、次のようになりました。
カスタム ActionFilterAttribute:
public class IsLoggedAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Session["isLogged"] == null || (int) filterContext.HttpContext.Session["isLogged"] != 1)
{
filterContext.HttpContext.Response.RedirectToRoute(new { controller = "Home" });
}
base.OnActionExecuting(filterContext);
}
}
そして、ルーティングされたメソッドの上に [IsLogged] をスローできます。