MVC session过期如何处理跳转】的更多相关文章

以前我们总是会写一个基类也叫父类来判断session是否已过期然后跳转到指定的错误页面或者登陆界面,然后让所有的页面都继承这个基类,但是当我们应用到MVC项目中时,发现该方法并不会起作用.这时我们可以这么做: 1.建一个类,如下 using System; using System.Web.Mvc; using System.Web.Routing; namespace CheckInManagerSystem.Controllers { public class CheckLogin : Ac…
一.在要检查登入的控制器上继承 CheckLoginController 类 2. CheckLoginController 类的写法 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace TaskManagement.Controllers { public class CheckLoginController :…
Web端开发时,用户登录后往往会通过Session来保存用户信息,Session存放在服务器,当用户长时间不操作的时候,我们会希望服务器保存的Session过期,这个时候,因为Session中的用户信息取不到了,就需要用户重新登录,重新保存Session. Asp.net MVC提供了过滤器,让我们可以很方便的控制访问Action时要处理的事情,针对Session过期后页面跳转,我们可以封装一下Controller的OnActionExecuting方法作为基Controller,如下: pub…
本文转自:http://www.cnblogs.com/JustRun1983/p/3377652.html 小赵是刚毕业的计算机专业方面的大学生,4年的大学时间里面,他读过了很多编程方面的数据,也动手也了很多代码.现在毕业了,他如愿的加入了T公司,开始了自己的程序员生涯.他信心满满,相信自己4年的学习到的东西,一定能够在工作派上用场,帮助自己很快的胜任现在的工作. 阅读目录: 一.Session引发的异常 二.使用MVC中的Filter来对Session进行验证 三.对于Ajax请求的中,Se…
小赵是刚毕业的计算机专业方面的大学生,4年的大学时间里面,他读过了很多编程方面的数据,也动手也了很多代码.现在毕业了,他如愿的加入了T公司,开始了自己的程序员生涯.他信心满满,相信自己4年的学习到的东西,一定能够在工作派上用场,帮助自己很快的胜任现在的工作. 阅读目录: 一.Session引发的异常 二.使用MVC中的Filter来对Session进行验证 三.对于Ajax请求的中,Session失效的处理 四.处理Session过期异常的重要性 一, Session引发的异常 小赵刚进公司,就…
一.使用MVC中的Filter来对Session进行验证 (1)方法1: public class MyAuthorizeAttribute : FilterAttribute, IAuthorizationFilter { public void OnAuthorization(AuthorizationContext filterContext) { var loginUser = filterContext.HttpContext.Session["User"]; //When…
第一篇博文,mark一下zhq[0]. 问题描述:用户页面,当session过期或都session注销后,普通页面后端都会有过滤器,session过期Redirect到登录页面,但是ajax请求后端只会返回登录页面源码并不跳转. 网上有很多方法1.返回的字符串附加登录状态2.修改http头信息:3.修改jquery源文件判断;综合比较还是以下方法最方便更易维护.个中缺点大家应该都明了就不赘述. 解决方案: jQuery(function($){ // 备份jquery的ajax方法 var _a…
当session过期后可以用过滤器来设置重定向页面 public class ActionFilter extends HttpServlet implements Filter { private FilterConfig filterConfig; public void init(FilterConfig config) { this.filterConfig = config; } public void doFilter(ServletRequest servletRequest, S…
public class BaseController : Controller { protected User UserInfo { set { Session["UserInfo"] = value; } get { if (Session["UserInfo"] == null) { return null; } else { return (User)Session["UserInfo"]; } } } protected overri…
jQuery(function($){ var _ajax=$.ajax; // 备份jquery的ajax方法 $.ajax=function(opt){ var _success = opt && opt.success || function(a, b){}; //获取ajax请求参数中的success方法: var _opt = $.extend(opt, { success:function(data, textStatus){ // 如果后台将请求重定向到了登录页,则data里…
一般我们会在过滤器里判断登录状态,如果没登录就跳转登录页面,过滤器java核心代码如下: UserItem loginUser = (UserItem)request.getSession().getAttribute("loginUser"); if(loginUser == null) { response.sendRedirect("/login.action"); } UserItem loginUser = (UserItem)request.getSes…
jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _success = opt && opt.success || function(a, b){}; var _error = opt && opt.error || function(a, b){}; var _opt = $.extend(opt, { success:functi…
1.在登录页面添加 <script> $(function () { if (top != window) { layer.msg("登录失效", {icon: 5}); top.location.href = window.location.href; } })</script> 2.在layui弹窗里点击添加的方法里添加 form.on('submit(add)', function (data) { //发异步,把数据提交给控制器 var indexs =…
对于frame页面框架的java web项目,如果session过期执行跳转操作时,只在一个frame中(例如center frame)跳转到设置的login页面了,为了能直接跳转到最初的登录页面,就需要在跳转的页面中(login.jsp)添加如下代码: <script type="text/javascript">if (top.location != location){ top.location.href = location.href; }</script&g…
ajax前置处理实现异步请求session过期时跳转登录页面 function checkLogin(json) { if (typeof(json) === 'string' && ~json.indexOf('<!DOCTYPE html>')) { window.location.href = $('base').attr('href') + 'auth/login' } }…
背景: 当session过期后, 按照 系统的设计,  会自动跳转到登录页面, 重新进行登录操作 问题: 由于进入主页后, 其他页面都是嵌入式的模板页, 所以这时的登录页面也是内嵌在index模板下的, 这时重新输入账号密码的话, 点击登录按钮是没有效果的, 如果想要重新登录页面, 就需要按 F5 刷新页面, 重新进入一开始的登录页面, 这时输入账号密码才能顺利登录. 但是这样一来的话, 一是 session 过期, 自动跳转登录的功能就成了一个摆设, 二来对用户的体验也不是很友好, 所以就需要…
这里算是自己的个人随笔吧,仅供参考使用,后续有更好的方法再做补充 之前在Aspx页面里面,在Session过期的时候我经常会使用 Server.Transfer("b.aspx"); protected void Page_Load(object sender, EventArgs e) { if(Session["UserId"]==null) { Server.Transfer("Login.html");} } 但是这样很不好的一点就是如果…
问题1:传统的系统界面,iframe了三个页面,上,左,右,用户点击注销的按钮在上面得top.jsp里面,方法:<a href="../adminAction/admin_logout.action">退出系统</a>退出之后你会发现,只是刷新了top.jsp上面那个iframe,其他两个还在,如何解决? 解决办法: target="_top",就就是它.加多这个变成:<a href="../adminAction/admin…
当用户长时间停留在管理界面没有操作,等到session过期后,进行了操作,那么只是iframe跳转到login页面,这不是我们想要的结果.解决方法:在login页面加一个逻辑判断: <script > $(document).ready(function () { if (window != top) { top.location.href = location.href; } }); </script>…
写项目时在重定向后一直存在一个问题就是重定向后登陆页面会出现在跳出的子框架里.…
一.自定义一个Action过滤器 public class CheckSession: ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { object[] attrs = filterContext.ActionDescriptor.GetCustomAttributes(typeof(NoFilter), true); ){} else {…
首先需要在拦截器中判断是否是ajax请求,如果是 if(isAjaxRequest(request)){//ajax请求 response.setHeader("sessionstatus", "timeout"); response.setHeader("redirectUrl", request.getContextPath()+Constant.LOGIN); }else{//form请求 response.sendRedirect(req…
session过期后如果在iframe里操作就会返回到login.html,可是这个页面还在iframe里面如果再次登陆就会出现iframe嵌套的现象,我们这样来解决. 在login.html里面加上这个就可以了.function checkParent(){ if(window.parent.length>0){         window.parent.location="login.html";     }} <body onload="checkPare…
Session引发的异常 其中一个bug是这样的: 使用Firefox登录进入系统后,再打开一个Tab,进入系统页面,点击logout. 在回到前一个tab页面,点击Save按钮,出现了js错误.这个时候应当将用户转到登陆页. 小王看到这个bug,有些目瞪口呆,没想到QA用这么"暴力"的方式来测试自己的程序.在另一个Tab上点击logout, 会导致session清空的,这样再点击第一个tab上的Save按钮,调用的Ajax方法会出现异常的. 但是如何处理这种”非正常”操作引发的异常呢…
Spring Mvc拦截器实现session过期跳转到登录页面 配置拦截器 <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**/*.html"/> <bean class="com.rrtong.frame.plugins.SecurityInterceptor"> <property name="excludedUrls"&…
 一.需求背景     1. 需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示.   @RequestMapping(value = "/activityType", method = RequestMethod.GET) public String activityType(HttpServletRequest request, ModelMap model,RedirectAt…
//在你想控制跳转的页面,如login.jsp中的<head>与</head>之间加入以下代码:    if(window != top){        //解决Session过期跳转到登录页面并跳出iframe等框架问题        top.location.href = location.href;    }…
关于web会话中的session过期时间的设置 1.操作系统: 步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟).确定即可.2.ASP.NET应用程序中Session过期时间的设置 在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要…
问题的产生: 现如今Ajax在Web项目中应用广泛,几乎可以说无处不在. 有时会碰到这样个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不是浏览器,在验证失败后的页面跳转无法反应到浏览器中,因为服务器返回(或输出)的信息被JavaScript(XMLHTTPRequest对象)接到了. 那么应该怎么处理这种情况呢? 问题的解决之法: 既然服务器返回的消息被XMLHTTPRequest对象…
同一账号后者登录前者被强制退出:(可以通过监听器或过滤器进行监测session是否无效) 首先根据输入的用户名和密码做验证,通过验证查询用户信息.在用户信息不为空的前提下,比较静态变量中的sessionid和浏览器session获取的getId(),判断两个值是否一致,若一致,则通过 正常走流程,若不一致,则返回登录页面,session设置msg,提示“账户失效或异地登录”; web.xml: <session-config> <session-timeout>180</se…