出错环境:被拦截的页面中使用了未实例化的对象,比如只有登录后才有的UserInfor对象。

理想中:浏览器请求页面时,会被Filter拦截,然后重定向到指定页面;

实际现象:将断点打入Filter中,发现确实被拦截,只是在重定向后,程序依然执行后面代码,且编译被拦截目标的页面代码,这时由于没有登录,使用的对象皆为空,从而抛出空引用    异常;如果被拦截的网也中没有使用对象,则能正确的重定向到新页面。

 问题定位:查找了大量资料,发现是重定向处出了问题。我使用的语句    是:    HttpContext.Current.Response.RedirectToRoute("Default", new { controller =     "Account", action = "Login"});

资料显示,并经自己验证。当该语句执行后,不会立即跳转到指定页面,而是等后续代码执行完  才能重定向。此过程中,就算不出错,也会影响性能(多编译了一次页面)。

解决方案:if(UserContext.Current==null){

filterContext.Result = new RedirectResult("/NetDisk.UI/Account/Login");

}

base.OnActionExecuting(filterContext);

MVC中Filter拦截问题记录之重定向陷阱的更多相关文章

  1. spring mvc中的拦截器小结 .

    在spring mvc中,拦截器其实比较简单了,下面简单小结并demo下. preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Control ...

  2. Spring MVC中的拦截器/过滤器HandlerInterceptorAdapter的使用

    一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的 而在Spring中,基于Filter这种方式可以实现Bean预处理.后处理. 比如注入FilterRegistrationBean,然后 ...

  3. ASP.NET MVC中的拦截器

    在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器, 所谓的拦截器也没有什么的,只是写一个类,继承另一个类和一个接口,顺便实现接口里面的方法而以 ...

  4. Spring MVC中的拦截器Interceptor

    谈谈spring中的拦截器 在web开发中,拦截器是经常用到的功能.它可以帮我们验证是否登陆.预先设置数据以及统计方法的执行效率等等.今天就来详细的谈一下spring中的拦截器.spring中拦截器主 ...

  5. Spring MVC中自定义拦截器的简单示例

    1. 引言 拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似于Servlet的Filter. 我们可以让普通的Bean实现HandlerIntercpetor接口或继承 ...

  6. ASP.NET MVC中错误日志信息记录

    MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public clas ...

  7. Spring MVC中Filter Servlet Interceptor 执行顺序

    <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springfr ...

  8. 【转】ASP.NET MVC中错误日志信息记录

    MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public clas ...

  9. 在MVC中添加拦截器实现登录后的权限验证

    1.新建一个类 (以下实现了打印日志功能) using System; using System.Collections.Generic; using System.Linq; using Syste ...

随机推荐

  1. CAD 致命错误

    在用.net进行CAD二次开发的时候,偶尔会出现致命错误,经总结,发现有两点会引起致命错误,在此记下,一来供自己参考,二来与大家分享 : ) 致命错误一: 描述:声明了DBObject对象,但未将对象 ...

  2. SQL Server执行计划那些事儿(1)——哈希、合并、嵌套联接的选择

    接下来的文章是记录自己曾经的盲点,同时也透漏了自己的发展历程(可能发展也算不上,只能说是瞎混).当然,一些盲点也在工作和探究过程中慢慢有些眉目,现在也愿意发扬博客园的奉献精神,拿出来和大家分享一下. ...

  3. MS SQLSERVER通用存储过程分页

    最近在面试的时候,遇到个奇葩的秃顶老头面试官. 问:写过存储过程分页吗? 答:没写过,但是我知道分页存储的原理,我自己也写过,只是在工作中没写过. 问:那你这么多年工作中就没写过吗? 答:的确没写过, ...

  4. 微信sdk (1)

    <?php /** * wechat php test */ //define your token define("TOKEN", "weixin"); ...

  5. QF——UITableViewCell性能优化(视图复用机制)

    这几篇博客总结的不错: 点击进入 点击进入 总结起来方案一般有以下几种: 1.不使用透明视图: 2.减少视图的个数: 3.cell复用机制:(重点) 4.图片缓存: 5.网络请求使用非主线程. 6.预 ...

  6. 【转】Pjax是什么以及为什么推荐大家用

    http://my.oschina.net/sub/blog/12344 技术增强的文章,可以看一下 .

  7. Android RelativeLayout常用属性介绍

    下面介绍一下RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layou ...

  8. javascript prompt示例

    <html lang="en"> <head>   <title>Date example</title> <script t ...

  9. codeforces 27E . Number With The Given Amount Of Divisors 搜索+数论

    题目链接 首先要知道一个性质, 一个数x的因子个数等于 a1^p1 * a2^p2*....an^pn, ai是x质因子, p是质因子的个数. 然后就可以搜了 #include <iostrea ...

  10. scanf和gets的区别

    scanf和gets获取字符串时的区别  在C语言中,能构获取字符串的函数至少有两个:  1.scanf()   所在头文件:stdio.h  语法:scanf("格式控制字符串" ...