MVC中的action验证登录(ActionFilterAttribute)
方法一 : 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)相关推荐
- MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法
今天用本地测试出现将您重定向的次数过多的错误提示,搜索到这篇文章,大概看懂了意思. 我自己的是tp的登录页面提示重定向,我查到问题是logincontroller.class.php 前面继承了com ...
- MVC中的统一验证机制~续
前段时间我发表的关于MVC架构中对验证方式的设计,收到了不少朋友的留言,意思是说过于复杂,复用性不高,当然我的出发点是减少实体部门的代码量. 最近在朋友的建议下,看了另一种验证方式,事实上就是MVC实 ...
- ASP.NET MVC中的身份验证
传统的登录验证方式,是通过将用户的登录状态信息保存在服务端的Session中,再利用客户端浏览器的Cookie保存SessionID,这样浏览器每次在向服务端发起请求时,都会携带该Cookie值,服务 ...
- ASP.NET Core MVC 中的模型验证
数据模型的验证被视为是数据合法性的第一步,要求满足类型.长度.校验等规则,有了MVC的模型校验能够省却很多前后端代码,为代码的简洁性也做出了不少贡献. 原文地址:https://docs.micros ...
- asp.net MVC 中 Session统一验证的方法
验证登录状态的方法有:1 进程外Session 2 方法过滤器(建一个类继承ActionFilterAttribute)然后给需要验证的方法或控制器加特性标签 3 :新建一个BaseContro ...
- asp.net mvc中的后台验证
asp.net mvc的验证包含后台验证和前端验证.后台验证主要通过数据注解的形式实现对model中属性的验证,其验证过程发生在model绑定的过程中.前端验证是通过结合jquery.validate ...
- ASP.NET MVC中在Action获取提交的表单数据方法总结
有Index视图如下: 视图代码如下: [html] view plaincopy <%@ Page Language="C#" MasterPageFile="~ ...
- ASP.NET MVC中在Action获取提交的表单数据方法总结 (4种方法,转载备忘)
有Index视图如下: 视图代码如下: [html] view plaincopyprint? <%@ Page Language="C#" MasterPageFile=& ...
- MultipleRegularExpressionAttribute MVC中扩展自定义验证规则
好久都没有写博客,最近工作中没有什么可写的,公司的项目是以业务为重,技术含量实在不咋的.这次sprint中有一个要求就是password必须一些规则,比如给你一些正则表达式必须满足几个,直接看效果吧 ...
- ASP.NET MVC中使用FluentValidation验证实体
1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的 ...
最新文章
- 5.2 大间距分类器-机器学习笔记-斯坦福吴恩达教授
- hdu oj1092题解
- Centos7 Yum安装 PHP5.5,5.6,7.0
- LeetCode 53最大子序和
- 图像条纹检测 python_光源在外观缺陷检测中的应用
- 图书管理系统数据库SQL设计思路
- 完整的支付系统整体架构
- pcm设备的注册流程
- 黑客来势汹汹,受害者能以牙还牙“黑回去”吗
- 最深入的python教程_天啦噜!仅仅5张图,彻底搞懂Python中的深浅拷贝
- 笔记——跟熊浩学沟通
- 【Unity编辑器扩展实践】、扩展Hierarchy菜单
- thinkserver t340 u盘安装centos 遇到的问题
- PyQt5 自定义颜色、形状粗细、虚线等组合下拉框
- 学生选课系统项目设计报告
- 玩cf出现outofmemory_玩CF自动掉线出现out of memory怎么处理?
- java floor cell_英语翻译The cell floor and its composite liner system was sloped
- 计算机视觉面试题总结
- linux下fdisk命令实战案例之详解
- 不同工况DST FUDS HPPC电池参数在线辩识,包括一阶模型,二阶模型,带ocv同时参数辩识
热门文章
- python3连接MSSQL数据库 中文乱码怎么解决?
- promise.all是并发执行吗_你真的会用Volatile了吗?
- linux lsnrctl命令不存在,linux – oracle lsnrctl TNS-12545:连接失败,因为目标主机或对象不存在...
- 路由添加失败 参数错误_Django框架基础之路由详解 | 技术
- Tensorflow笔记:MNIST数据集输出手写数字识别准确率
- PHP7通过yum源安装及性能测试
- linux 下 dhcp failover相关
- Git Extensions 2.33出现unhandled exception has ……解决方法
- ANDROID定义自己的看法——onMeasure,MeasureSpec源代码 过程 思考具体解释
- 打字机游戏Ⅱ之手速pk