Cookie が有効かどうかをチェックするカスタム アクション フィルタを開発しようとしていました。Cookie が有効になっていない場合は、使用を特定のエラー ページにリダイレクトします。これが私のコードです。
public class CheckCookieAttribute : FilterAttribute, IActionFilter
{
public string prmAction{get;set;}
public string prmController{get;set;}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
if(filterContext.HttpContext.Request.Cookie["YourCookie"]==null)
{
filterContext.Result = controller.RedirectToAction(prmAction,prmController)
}
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
//The action filter logic - after
}
}
今私はのように使用しています
[CheckCookie(prmAction="MyAction",prmController="MyController")]
十分な知識が不足しているため、Cookie を有効または無効にするための属性駆動型チェックを開発できません。
結果として、コントローラー名またはアクション名を渡してはならないような方法でコードを開発したい。私は次のようなコードを使用するのが好きです
[HttpPost]
[CheckCookieAttribute]
public ActionResult Save(Person oPerson)
{
return View();
}
[CheckCookieAttribute]
public class HomeController : Controller
{
public ActionResult Index()
{return View();}
public ActionResult About()
{return View();}
}
}
ここで、コントローラーの名前やアクション名は提供しません。コードで何を変更する必要があるかを教えてください。ありがとう