Mvc校验用户没有登录就跳转的实现
2014-05-06 11:59
309 查看
看字面意思很简单,就是判断用户是否登录了,如果没有登录就跳转到登陆页面。
没错,主要代码如下(这里就不写判断登录了,直接跳转)
首先在控制器中新建一个BaseController
正常的控制器 比如 TestController 继承BaseController代码如下
如此在直接访问/Test/Index 的时候,由于继承的BaseController中进行了跳转,所以页面会成功的跳转到/Login/Index
那么至此,大功告成!
可是如果你真的这么干了,我会毫不夸张的告诉你,你死定了!一点不吓人的告诉你
为什么呢?
原因很简单:断点调试发现一个严重的问题,在执行完下列代码之后
并没有立即跳转到相应页面,而是继续去访问了/Test控制器下的Index方法。
直至将Test控制器下的Index方法执行完毕,才在浏览器中显示了/Login/Index页面。
解决方法:
在跳转的时候,不用Response.Redirect进行跳转
而是将ActionExecutingContext的Result属性赋值为我们要跳转的地址就OK了!
如下:
如此这般,将不再继续访问Test控制器下的Index方法了!
没错,主要代码如下(这里就不写判断登录了,直接跳转)
首先在控制器中新建一个BaseController
public class BaseController : Controller { protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); //这里判断出没有登录然后进行跳转 Response.Redirect("/Login/Index"); }}
正常的控制器 比如 TestController 继承BaseController代码如下
public class TestController : BaseController { public ActionResult Index() { return View(); } }
如此在直接访问/Test/Index 的时候,由于继承的BaseController中进行了跳转,所以页面会成功的跳转到/Login/Index
那么至此,大功告成!
可是如果你真的这么干了,我会毫不夸张的告诉你,你死定了!一点不吓人的告诉你
为什么呢?
原因很简单:断点调试发现一个严重的问题,在执行完下列代码之后
//这里判断出没有登录然后进行跳转 Response.Redirect("/Role/Index");
并没有立即跳转到相应页面,而是继续去访问了/Test控制器下的Index方法。
直至将Test控制器下的Index方法执行完毕,才在浏览器中显示了/Login/Index页面。
解决方法:
在跳转的时候,不用Response.Redirect进行跳转
而是将ActionExecutingContext的Result属性赋值为我们要跳转的地址就OK了!
如下:
filterContext.Result = new RedirectResult("/Login/Index");
如此这般,将不再继续访问Test控制器下的Index方法了!
相关文章推荐
- 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker
- java简单的MVC实现简单的用户注册与登录
- MVC3学习第十二章 佟掌柜第一弹----利用MVC3实现用户的注册登录和了解MVC中的分部视图、用户控件
- web 开发,个人中心每个请求,判断用户是否登录,若没有登录,则跳转到登录页面,登录成功后返回之前页面
- 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker
- 访问页面时,判断用户是否登录,若没有登录,将跳转到登录页面(一)
- 使用MVC实现用户登录注册系统—银行管理系统
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- PHP Session变量,实现session服务器端存储用户信息,阻止未登录跳转主页
- Yii controller控制器下设置对于用户没有登录的请求跳转至指定URL的方法
- 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker
- java简单的MVC实现简单的用户注册与登录
- Asp.net mvc验证用户登录之Forms实现详解
- MVC判断用户有没有登陆跳转登录页面AuthorizeAttribute
- 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker
- MVC下用户登录状态校验的问题以及解决方案
- 网页用户登录权限校验的两种实现方式
- 力所能及之springmvc+ajax+jquery+json实现登录异步校验用户名是否存在
- Asp.net mvc验证用户登录之Forms实现
- JSP系统开发学习之四关于用户登录界面的补充——通过request页面传值&wel.jsp的MVC的实现