我试图用OnActionExecuting我BaseController处理重定向如果用户会话超时登录屏幕。 然而,它是造成无限的重定向我之前也得到记录在 - 任何人都可以就如何克服这个建议?
所以在我的基地控制器我有以下几点:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (SessionManager.Instance().GetUser() == null)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {
{ "Controller", "Home" },
{ "Action", "LogOn" }
});
}
base.OnActionExecuting(filterContext);
}
所以基本上我有一个可以获取/设置用户等一个会话管理器类 - 我那种知道该的getUser问题也将是空的,因为它只是用我的方法SETUSER设置登录已经通过验证后。
但是,而不是我有像检查其他控制器的每个方法:
public ActionResult SomeOtherMethod()
{
if(SessionManager.Instance().GetUser() != null)
{
//Go Do Useful View stuff
}
else
{
//Redirect To Logon
}
}
我想在基本控制器使用OnActionExcuting。 但由于它是在登录页上运行(因为它应该)我越来越infinte redierct因为的getUser将永远是空?
是否有过这样一个更好的办法