方法一 : 1. 创建一个全局action过滤器  (在appstart  的 filterconfig中注册   filters.Add(new LoginFilterAttribute());)

这样就每个Action都会执行此过滤器,而不必每个Controller顶部都加上标签。

    public class FilterConfig{public static void RegisterGlobalFilters(GlobalFilterCollection filters){filters.Add(new HandleErrorAttribute());//注册全局过滤器filters.Add(new LoginFilterAttribute() { Message = "全局" });}}

2. 不需要登录的contoller或者action  则在该类或者action上添加该过滤器特性 (isNeed=false)

{[LoginFilterAttribute(isNeed = false)]public class UserController : Controller{public ActionResult Login(){return View();}}
}

方法二: 1. 创建一个filter 不在全局注册

2. 创建 一个baseControler ,然后再basecontroller上边添加该filter特性

3. 需要登录的则继承该basecontroller,不需要登录的则不继承该basecontroller

补充:若是不想建baseControler ,可以直接在Controller控制器上或者Action方法上加自定义的过滤器

注意: 1. OnActionExecuting 中   base.OnActionExecuting(filterContext);

如果当前项目有多个filter则加上 base.OnActionExecuting(filterContext);

不添加则不会执行其他的filter

2. filterContext.Result = new RedirectResult("/User/login");

在filter里边页面跳转用  filterContext.Result = new RedirectResult("/User/login");

如果用 filterContext.HttpContext.Response.Redirect("/User/login");  则在跳转后还会继续执行  后边的action  eg: home/index    跳转user/login  后,还会接着执行index/action  里边的方法

在Filter中用Response.Redirect,虽然URL是跳转了,但是之后的Filter和Action还是会执行,不仅浪费资源,还会产生一些不必要的错误

转载于:https://www.cnblogs.com/li150dan/p/9957971.html

MVC中的action验证登录(ActionFilterAttribute)相关推荐

  1. MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法

    今天用本地测试出现将您重定向的次数过多的错误提示,搜索到这篇文章,大概看懂了意思. 我自己的是tp的登录页面提示重定向,我查到问题是logincontroller.class.php 前面继承了com ...

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

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

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

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

  4. ASP.NET Core MVC 中的模型验证

    数据模型的验证被视为是数据合法性的第一步,要求满足类型.长度.校验等规则,有了MVC的模型校验能够省却很多前后端代码,为代码的简洁性也做出了不少贡献. 原文地址:https://docs.micros ...

  5. asp.net MVC 中 Session统一验证的方法

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

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

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

  7. ASP.NET MVC中在Action获取提交的表单数据方法总结

    有Index视图如下: 视图代码如下: [html] view plaincopy <%@ Page Language="C#" MasterPageFile="~ ...

  8. ASP.NET MVC中在Action获取提交的表单数据方法总结 (4种方法,转载备忘)

    有Index视图如下: 视图代码如下: [html] view plaincopyprint? <%@ Page Language="C#" MasterPageFile=& ...

  9. MultipleRegularExpressionAttribute MVC中扩展自定义验证规则

    好久都没有写博客,最近工作中没有什么可写的,公司的项目是以业务为重,技术含量实在不咋的.这次sprint中有一个要求就是password必须一些规则,比如给你一些正则表达式必须满足几个,直接看效果吧 ...

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

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

最新文章

  1. 5.2 大间距分类器-机器学习笔记-斯坦福吴恩达教授
  2. hdu oj1092题解
  3. Centos7 Yum安装 PHP5.5,5.6,7.0
  4. LeetCode 53最大子序和
  5. 图像条纹检测 python_光源在外观缺陷检测中的应用
  6. 图书管理系统数据库SQL设计思路
  7. 完整的支付系统整体架构
  8. pcm设备的注册流程
  9. 黑客来势汹汹,受害者能以牙还牙“黑回去”吗
  10. 最深入的python教程_天啦噜!仅仅5张图,彻底搞懂Python中的深浅拷贝
  11. 笔记——跟熊浩学沟通
  12. 【Unity编辑器扩展实践】、扩展Hierarchy菜单
  13. thinkserver t340 u盘安装centos 遇到的问题
  14. PyQt5 自定义颜色、形状粗细、虚线等组合下拉框
  15. 学生选课系统项目设计报告
  16. 玩cf出现outofmemory_玩CF自动掉线出现out of memory怎么处理?
  17. java floor cell_英语翻译The cell floor and its composite liner system was sloped
  18. 计算机视觉面试题总结
  19. linux下fdisk命令实战案例之详解
  20. 不同工况DST FUDS HPPC电池参数在线辩识,包括一阶模型,二阶模型,带ocv同时参数辩识

热门文章

  1. python3连接MSSQL数据库 中文乱码怎么解决?
  2. promise.all是并发执行吗_你真的会用Volatile了吗?
  3. linux lsnrctl命令不存在,linux – oracle lsnrctl TNS-12545:连接失败,因为目标主机或对象不存在...
  4. 路由添加失败 参数错误_Django框架基础之路由详解 | 技术
  5. Tensorflow笔记:MNIST数据集输出手写数字识别准确率
  6. PHP7通过yum源安装及性能测试
  7. linux 下 dhcp failover相关
  8. Git Extensions 2.33出现unhandled exception has ……解决方法
  9. ANDROID定义自己的看法——onMeasure,MeasureSpec源代码 过程 思考具体解释
  10. 打字机游戏Ⅱ之手速pk