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,理论是显示的,但是