【发布时间】:2019-07-29 22:55:37
【问题描述】:
我想绕过我的 [SessionExpire] 重定向到登录。 我想绕过属性不登录就执行。
如图所示的自定义属性:
public class SessionExpireAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext ctx = HttpContext.Current;
// check sessions here
if( HttpContext.Current.Session["username"] == null )
{
filterContext.Result = new RedirectResult("~/Account/Login");
return;
}
base.OnActionExecuting(filterContext);
}
}
//SAMPLE IMPLEMENTATION:
[SessionExpire]
public class HomeController : Controller
{
public ActionResult Index()
{
return Index();
}
//I WANT TO BYPASS THIS JSONRESULT WITHOUT GOING TO SESSIONEXPIRE
public JsonResult Result()
{
return Json();
}
}
【问题讨论】:
-
你想什么时候这样做?总是?如果是这样,也许调整你的超时时间?
-
@Jonathan 我在问题中添加了一些信息先生,我只想执行一个 jsonresult 而不去登录。
-
你可以把属性放到你想使用它们的特定控制器方法上,而不是放在整个控制器类上
-
@Jonathan 是的,这是我最后的选择,因为在我的控制器中,我有 20 个类可以单独放置 [sessionexpire]。
-
@Jonathan 你删除了你的答案。它正在工作,我从您的代码中添加了“else”。搜索它并给出答案的链接。非常感谢!