protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); string actionName = filterContext.ActionDescriptor.ActionName; HttpCookie cookie = Request.Cookies["Session"]; if (cookie != null) { string cookieValue = cookie.Value; PartnerSessionDTO session = null; try { byte[] sessionId = FormatHelper.FromHexStringToArray(cookieValue); PartnerSessionBLL sessionBLL = new PartnerSessionBLL(WebApp.Connector); session = sessionBLL.ReadById(sessionId); } catch { } DateTime?expiresOn = session?.ExpiresOn; if (session != null && ((expiresOn != null && expiresOn > DateTime.UtcNow) || expiresOn == null) && session.IsActive && session.Partner.HasEmailAddressBeenVerified) { if (actionName != "Logout") { filterContext.Result = RedirectToAction("Home", "Management"); } } else if (actionName == "Logout") { filterContext.Result = RedirectToAction("Login"); } } TempData.Clear(); }
protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); HttpCookie cookie = Request.Cookies["Session"]; if (cookie != null) { string cookieValue = cookie.Value; if (!string.IsNullOrEmpty(cookieValue)) { try { byte[] sessionId = FormatHelper.FromHexStringToArray(cookieValue); PartnerSessionBLL sessionBLL = new PartnerSessionBLL(WebApp.Connector); PartnerSessionDTO session = sessionBLL.ReadById(sessionId); DateTime utcNow = DateTime.UtcNow; if (session?.ExpiresOn > utcNow && session.IsActive) { if (session.Partner.HasEmailAddressBeenVerified) { sessionBLL.UpdateExpiration(sessionId, utcNow.AddMinutes(15)); CurrentSession = session; } else { ReturnToLogin(filterContext, "EmailAddressHasNotBeenVerified"); } } else { ReturnToLogin(filterContext, "YourSessionHasExpired"); } } catch { ReturnToLogin(filterContext, "YouShouldLogInFirst"); } } else { ReturnToLogin(filterContext, "YouShouldLogInFirst"); } } else { ReturnToLogin(filterContext, "YouShouldLogInFirst"); } }