您的位置:首页 > 其它

mvc ajax访问后台时session过期无法跳转到Login页面问题解决

2018-05-25 17:16 681 查看
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,理论是显示的,但是

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: