验证登录状态的方法有:1  进程外Session   2 方法过滤器(建一个类继承ActionFilterAttribute)然后给需要验证的方法或控制器加特性标签

3 :新建一个BaseController  继承Controller   把后面需要验证的控制器都改成继承BaseController   而不是Controller

[csharp] view plaincopy print?
  1. namespace Core.ProjectOA.WebApp.Controllers
  2. {
  3. public class BaseController : Controller
  4. {
  5. //要过滤的控制器可以继承此BaseController
  6. /// <summary>
  7. /// 在控制器执行方法之前执行
  8. /// </summary>
  9. /// <param name="filterContext"></param>
  10. protected override void OnActionExecuted(ActionExecutedContext filterContext)//protected 只能被子类访问
  11. {
  12. base.OnActionExecuted(filterContext);
  13. if (Session["userInfo"] == null)
  14. {
  15. filterContext.Result = Redirect("/Login/Index");//  没有返回值, 所以不是return   是filterContexr.Result
  16. }
  17. }
  18. }
  19. }

之所以是filterContext.Result = Redirect("/Login/Index");   而不是直接跳转  是因为 过滤器是切面 ,请求必须返回一个ActionResult结果   如果这里直接跳转,还是需要一个结果,所以还会执行  Index方法 ,所以此处要返回一个结果  (Redirect 返回的就是一个ActionResult)  就不会继续执行后面的Index方法了

注意:这种方式只能控制get请求新页面  对于异步请求是无法控制的

asp.net MVC 中 Session统一验证的方法相关推荐

  1. MVC中的统一验证机制~续

    前段时间我发表的关于MVC架构中对验证方式的设计,收到了不少朋友的留言,意思是说过于复杂,复用性不高,当然我的出发点是减少实体部门的代码量. 最近在朋友的建议下,看了另一种验证方式,事实上就是MVC实 ...

  2. ASP.NET MVC中的身份验证

    传统的登录验证方式,是通过将用户的登录状态信息保存在服务端的Session中,再利用客户端浏览器的Cookie保存SessionID,这样浏览器每次在向服务端发起请求时,都会携带该Cookie值,服务 ...

  3. ASP.NET MVC中的模型装配 封装方法 非常好用

    下面说一下 我们知道在asp.net mvc中 视图可以绑定一个实体模型 然后我们三层架构中也有一个model模型 但是这两个很多时候却是不一样的对象来的 就拿微软的官方mvc例子来说明 微软的视图实 ...

  4. asp.net mvc中的后台验证

    asp.net mvc的验证包含后台验证和前端验证.后台验证主要通过数据注解的形式实现对model中属性的验证,其验证过程发生在model绑定的过程中.前端验证是通过结合jquery.validate ...

  5. ASP.NET MVC中的统一化自定义异常处理

    使用系统默认的错误处理方式,可以减少一次重定向访问,并且正常提示了错误信息,并发送了错误码500,但应注意以下问题: 一.需要修改web.config <customErrors mode=&q ...

  6. ASP.NET MVC中使用FluentValidation验证实体

    1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的 ...

  7. asp.net MVC 中使用dataannotation验证Model

    看到的一个好文章,讲如何验证Model webconfig中添加 <appSettings>         <add key="ClientValidationEnabl ...

  8. asp.net mvc中ckeditor+ckfinder的配置方法

    开源网页编辑软件FCKEditor在09年发布更新到3.0,并改名为CKEditor.改进后的ckeditor更加模块话,配置更加灵活,和以前的fckeditor使用方式上也有所不同.在我的mvc项目 ...

  9. ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)

    ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需要将相应的ValidationAttri ...

最新文章

  1. 提供第三种代码生成方式——通过自定义BuildProvider为ASP.NET提供代码生成
  2. python和c++哪个好学-C++和Python哪一个更好?
  3. c++对象长度之内存对齐(2)
  4. 中国传感器行业应用规模与投资价值分析报告2022版
  5. 陕西师范大学计算机科学学院保研院校,陕西师范大学计算机科学学院(专业学位)现代教育技术保研细则...
  6. 字符串倒着输出java_Java 输出反转字符串
  7. MySQL 异常:这一篇就够了,MySQL 抛出异常的几种常见解决方式小结
  8. LibLinear(SVM包)使用说明之(二)MATLAB接口
  9. Rabbtmq Confirm 确认消息
  10. GridView控件常见问题及处理方法
  11. git SSH 公钥拉取代码(使用及配置)
  12. 构成vspher虚拟化平台所需构建概念
  13. mysql取出的日期数据缺少时分秒_datetimepicker只显示日期,不显示时分秒
  14. springboot+vue新生宿舍管理系统(源码+说明文档),一款优秀的毕业设计
  15. epub格式电子书剖析
  16. getElementByTagName
  17. H3C HCL模拟器 MPLS ipv4/ipv6双栈实验
  18. 如何搭建企业邮箱服务器
  19. 2015年二本投档线
  20. 由于找不到opencv_world430d.dll,无法继续执行代码的解决办法

热门文章

  1. 掌握这10个Python小技巧,让你敲代码速度快5倍不止
  2. 学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  3. 20家单位共同倡议发起成立上海人工智能发展联盟
  4. DeepMind网红博士300页论文出炉:面向NLP的神经迁移学习
  5. 深度学习和普通机器学习之间有何区别?
  6. 新型智能头盔可快速评估患者中风的大小、位置和类型
  7. 清华微电子副所长尹首一:中国AI芯片的技术路线最全面
  8. 什么是启发式?什么是产生式?
  9. 华为鸿蒙系统四大特性:基于微内核,面向全场景,分布式架构
  10. 科学为什么重要?马化腾公开信引热议,透露企业未来发展方向