セッションタイムアウトの確認方法
void Session_Start(object sender, EventArgs e)
{
if (Session.IsNewSession && Session["SessionExpire"] == null)
{
//Your code
}
}
これを行うには多くのオプションがあります。しかし、Global.asax
そのような比較を行うために場所を使用することはお勧めしません
オプション1
これも非常に重要なアプローチです。使用できますHttpModule
。
オプション - 2
Base Controller class
オプション - 3
以下のように、Action Filter を Controller クラス全体に適用できます。
namespace MvcApplication1.Controllers
{
[MyActionFilter]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return View();
}
}
}
Home コントローラーによって公開されたアクション (Index() メソッドまたは About() メソッドのいずれか) が呼び出されるたびに、Action Filter クラスが最初に実行されます。
namespace MvcApplication1.ActionFilters
{
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//Your code for comparison
}
}
}
上記のコードに注意すると、アクション メソッドを実行する前に OnActionExecuting が実行されます。
オプション - 4
このアプローチを使用すると、OnActionExecuting
for Index メソッドのみが実行されます。
namespace MvcApplication1.Controllers
{
public class DataController : Controller
{
[MyActionFilter]
public string Index()
{
//Your code for comparison
}
}
}
現在のリクエストの DataToken を取得する方法
RouteData.Values["controller"] //to get the current Controller Name
RouteData.Values["action"] //to get the current action Name