1. 程式人生 > >mvc ajax訪問後臺時session過期無法跳轉到Login頁面問題解決

mvc ajax訪問後臺時session過期無法跳轉到Login頁面問題解決

題解 AI web iso null ida color span 解決

public class BaseController : Controller
    {
       protected User UserInfo
        {
            set
            {
                Session["UserInfo"] = value;
            }
 
            get
            {
                if (Session["UserInfo"] == null)
                {
                    return null;
                }
                else
                {
                    return (User)Session["UserInfo"];
                }
            }
        }
 
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //驗證碼
            if (filterContext.ActionDescriptor.ActionName.Equals("ValidateCode", StringComparison.CurrentCultureIgnoreCase))
            {
                return;
            }
            #region Session判斷
            if (UserInfo==null && !filterContext.ActionDescriptor.ActionName.Contains("Login"))
            {
                filterContext.Result = //new RedirectResult("/Home/Login");//這樣也可以
                new RedirectToRouteResult(
                        new System.Web.Routing.RouteValueDictionary { { "controller", "Home" }, { "action", "Login" } });
                //Response.Redirect("/Home/Login");//不建議這個,它會繼續往下執行action
                return;
            }
            #endregion
 
            base.OnActionExecuting(filterContext);
        }
 }

前臺解決嵌套iframe問題(針對ActionResult返回頁面有效,用ajax請求無效)

<script type="text/javascript">
        $(function () {
           //判斷一下當前是不是做頂層,如果不是,則做一下頂層頁面重定向
            if (window != top) {
                top.location.href = location.href;
            }
        });  
    </script>

針對ajax請求,使用以上方式,ajax請求是沒有變化的,ajax返回的狀態碼302,而Login返回狀態碼200,理論是顯示的,但是

mvc ajax訪問後臺時session過期無法跳轉到Login頁面問題解決