AuthorizeAttribute:一般用来判断权限

ActionFilterAttribute:方法执行前后动作

OutputCacheAttribute:输出缓存设置

注:我们创建名称的时候请带上 Attribute

AuthorizeAttribute:创建

  1. namespace MyWebApi.Models
  2. {
  3. using System;
  4. using System.Web;
  5. using System.Web.Mvc;
  6.  
  7. /// <summary>
  8. /// 检查登陆已经权限问题
  9. /// </summary>
  10. public class MyAuthorizeAttribute : AuthorizeAttribute
  11. {
  12. public int status = ;//1:登陆有权,2:没有登入,3:登陆无权限
  13. /// <summary>
  14. /// 权限检查的入口
  15. /// </summary>
  16. /// <param name="httpContext">http的基类</param>
  17. /// <returns></returns>
  18. protected override bool AuthorizeCore(HttpContextBase httpContext)
  19. {
  20. //这里写逻辑 利用Cookies 判断用户是否登入已经登入是否有权限,然后来给 status 赋值
  21. #region 我们也可以在使用的时候传入指定的用户以及角色来判断
  22. string[] users = Users.Split(',');
  23. string[] roles = Roles.Split(',');
  24. #endregion
  25. return status ==;
  26. }
  27.  
  28. /// <summary>
  29. /// 当检查入口返回false会进入到这里
  30. /// </summary>
  31. /// <param name="filterContext"></param>
  32. protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
  33. {
  34. if (filterContext == null)
  35. {
  36. throw new ArgumentNullException("filterContext");
  37. }
  38. else
  39. {
  40. if (status == ) //没有登陆的页面
  41. {
  42. filterContext.Result = new RedirectResult("");
  43. }
  44. else if (status == ) //没有权限访问的页面
  45. {
  46. filterContext.Result = new RedirectResult("");
  47. }
  48. }
  49. }
  50. }
  51. }

使用:

ActionFilterAttribute:创建

  1. namespace MyWebApi.Models
  2. {
  3. using System.Web.Mvc;
  4.  
  5. /// <summary>
  6. /// 方法的过滤
  7. /// </summary>
  8. public class MyFilterAttribute:ActionFilterAttribute
  9. {
  10. /// <summary>
  11. /// 在方法执行之前
  12. /// </summary>
  13. /// <param name="filterContext"></param>
  14. public override void OnActionExecuting(ActionExecutingContext filterContext)
  15. {
  16. //逻辑操作
  17. filterContext.Result = new RedirectResult("");//跳转页面
  18. }
  19. /// <summary>
  20. /// 在方法之后返回之前
  21. /// </summary>
  22. /// <param name="filterContext"></param>
  23. public override void OnActionExecuted(ActionExecutedContext filterContext)
  24. {
  25. //逻辑操作
  26. filterContext.Result = new RedirectResult("");//跳转页面
  27. }
  28. /// <summary>
  29. /// 在返回之前
  30. /// </summary>
  31. /// <param name="filterContext"></param>
  32. public override void OnResultExecuting(ResultExecutingContext filterContext)
  33. {
  34. //逻辑操作
  35. filterContext.Result = new RedirectResult("");//跳转页面
  36. }
  37. /// <summary>
  38. /// 在返回之后
  39. /// </summary>
  40. /// <param name="filterContext"></param>
  41. public override void OnResultExecuted(ResultExecutedContext filterContext)
  42. {
  43. //逻辑操作
  44. filterContext.Result = new RedirectResult("");//跳转页面
  45. }
  46. }
  47. }

使用:

OutputCacheAttribute:输出缓存不必我们去创建,System.Web.Mvc 命名空间中已存在,我们可以直接使用,在设置的时间内刷新页面不会刷新内容

特性上设置参数:

web.config配置:

MVC5 Attribute(特性)的更多相关文章

  1. mvc5新特性RouteAttribute特征路由

    mvc5新特性RouteAttribute特征路由,本文讲述如何开启mvc5的RouteAttribute路由功能并附上一个实例说明RouteAttribute是怎么工作的 mvc5新特性RouteA ...

  2. .net学习之Attribute特性和EF关键知识点

    一.Attribute特性/标签1.Attribute用来对类.属性.方法等标注额外的信息,贴一个标签简单的说,定制特性Attribute,本质上就是一个类,它为目标元素提供关联附加信息,并在运行时以 ...

  3. [C#]Attribute特性(3)——AttributeUsage特性和特性标识符

    相关文章   [C#]Attribute特性 [C#]Attribute特性(2)——方法的特性及特性参数 AttributeUsage特性 除了可以定制自己的特性来注释常用的C#类型外,您可以用At ...

  4. [C#]Attribute特性(2)——方法的特性及特性参数

    上篇博文[C#]Attribute特性介绍了特性的定义,类的特性,字段的特性,这篇博文将介绍方法的特性及特性参数相关概念. 3.方法的特性 之所以将这部分单列出来进行讨论,是因为对方法的特性查询的反射 ...

  5. 关于C# 中的Attribute 特性

    关于C# 中的Attribute 特性 作者: 钢钢  来源: 博客园  发布时间: 2011-01-09 23:30  阅读: 13921 次  推荐: 12   原文链接 [收藏] 摘要:纠结地说 ...

  6. Attribute特性验证模型model

    数据验证我们往往分为前台验证和后台验证,而我们的后台验证每到一个方法中就要去验证一次,这样的代码想想都难以维护,这篇我们这篇文章就是为了解决这样的问题.用attribute 这个特性来解决这样的问题 ...

  7. MVC5+ 路由特性

    MVC5+ 路由特性 概述 ASP.NET MVC 5支持一种新的路由协议,称为路由特性. MVC5也支持以前定义路由的方式,你可以在一个项目中混合使用这两种方式来定义路由. 案例 1.使用Visua ...

  8. 如何在方法上贴上attribute(特性)捕捉方法的异常,来实现我们的需求

    在方法上贴上attribute(特性)捕捉方法的异常,其实这么做也是为了在项目中不会大量使用try-cacth这样的语句,同时使我们的代码看起来更简洁,更直观,将逻辑业务分离使得后期维护方便.这里我们 ...

  9. .NET进阶篇03-Reflection反射、Attribute特性

    知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 内容目录 一.概述二.反射1.反射使用2.创建对象3.调用方法4.字段属性三.特性四.总结 一.概述 反射其实无处不在,我们用VS进行调试时候, ...

  10. Net中Attribute特性的高级使用及自定义验证实现

    好久没写博客了,今天在百忙之中抽空来写篇文章,记录一下最近深入学习Attribute特性的笔记及心得.~~ 一.什么是特性? 特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法. ...

随机推荐

  1. Spring接收List型参数

    第一种形式: 提交的数据形式:id=1,2,3 --> urlEncoding -->  id=1%2C2%2C3 <form method="post" act ...

  2. this 显示绑定

    function foo (el) { console.log(el, this.id); } var obj = { id: 'aaa' }; [2,6,3].forEach(foo, obj); ...

  3. 【Shell】Shell脚本注意事项

    1.大部分的Linux系统默认配置bash.对比sh,bash扩展了一些命令和参数,并且保留对sh的一些兼容.除了bash.sh还有csh(语法类似C语言).tcsh(csh升级版).ash(适合低内 ...

  4. javascript数组与字符串之间转换

    一.数组转字符串(将数组元素用某个字符连接成字符串) var a, b;a = new Array(0,1,2,3,4);b = a.join("-"); 二.字符串转数组(将字符 ...

  5. easyui-textbox 绑定事件

    $('#Id').textbox({ inputEvents: $.extend({},$.fn.textbox.defaults.inputEvents,{ keyup:function(event ...

  6. 转-vs2017安装并且安装包不占用C盘空间

    平常的安装方式,不论是在线安装还是下载的离线安装包,都会在安装过程中将vs2017的安装包保存在C:\ProgramData\Microsoft\VisualStudio\Packages文件夹下并占 ...

  7. SQL语句执行与结果集的获取

    title: SQL语句执行与结果集的获取 tags: [OLEDB, 数据库编程, VC++, 数据库] date: 2018-01-28 09:22:10 categories: windows ...

  8. scss-&父选择器标识符

    在使用选择器嵌套的时候有一种情况需要特别注意,先看一段scss代码实例: .text a { color: blue; :hover { color: red } } 也许写此段代码目的是为了将其编译 ...

  9. node:fs-extra模块

    var fs = require('fs-extra'); //复制 并会覆盖已有文件 fs.copy('./demo/index.html','./demo/index2.html' ,(err) ...

  10. ArcGIS for Server使用AD中的用户配置

    ArcGIS for Server使用AD中的用户配置 1.概述 默认情况下,ArcGIS Server使用内置存储模式来管理用户和角色.该模式使用基于文件格式来存储信息.当然,ArcGIS Serv ...