AuthorizeAttribute:一般用来判断权限

ActionFilterAttribute:方法执行前后动作

OutputCacheAttribute:输出缓存设置

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

AuthorizeAttribute:创建

namespace MyWebApi.Models
{
using System;
using System.Web;
using System.Web.Mvc; /// <summary>
/// 检查登陆已经权限问题
/// </summary>
public class MyAuthorizeAttribute : AuthorizeAttribute
{
public int status = ;//1:登陆有权,2:没有登入,3:登陆无权限
/// <summary>
/// 权限检查的入口
/// </summary>
/// <param name="httpContext">http的基类</param>
/// <returns></returns>
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//这里写逻辑 利用Cookies 判断用户是否登入已经登入是否有权限,然后来给 status 赋值
#region 我们也可以在使用的时候传入指定的用户以及角色来判断
string[] users = Users.Split(',');
string[] roles = Roles.Split(',');
#endregion
return status ==;
} /// <summary>
/// 当检查入口返回false会进入到这里
/// </summary>
/// <param name="filterContext"></param>
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
else
{
if (status == ) //没有登陆的页面
{
filterContext.Result = new RedirectResult("");
}
else if (status == ) //没有权限访问的页面
{
filterContext.Result = new RedirectResult("");
}
}
}
}
}

使用:

ActionFilterAttribute:创建

namespace MyWebApi.Models
{
using System.Web.Mvc; /// <summary>
/// 方法的过滤
/// </summary>
public class MyFilterAttribute:ActionFilterAttribute
{
/// <summary>
/// 在方法执行之前
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//逻辑操作
filterContext.Result = new RedirectResult("");//跳转页面
}
/// <summary>
/// 在方法之后返回之前
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//逻辑操作
filterContext.Result = new RedirectResult("");//跳转页面
}
/// <summary>
/// 在返回之前
/// </summary>
/// <param name="filterContext"></param>
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
//逻辑操作
filterContext.Result = new RedirectResult("");//跳转页面
}
/// <summary>
/// 在返回之后
/// </summary>
/// <param name="filterContext"></param>
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//逻辑操作
filterContext.Result = new RedirectResult("");//跳转页面
}
}
}

使用:

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

特性上设置参数:

web.config配置:

最新文章

  1. 混合框架中Oracle数据库的还原处理操作
  2. Swift泛型Protocol对比C#泛型Interface
  3. react路由深度解析
  4. jQuery插件-表单验证插件-Validation
  5. Mesa 3D
  6. JS通用方法总结(一)
  7. Windows7部署WordPress傻瓜式教程(IIS7.5+MySQL+PHP+WordPress)
  8. InnoDB存储引擎
  9. Struts2+JSON+JQUERY DEMO
  10. PID参数整定快速入门(调节器参数整定方法)
  11. Cocos2d-x内置粒子系统
  12. 重新想象 Windows 8 Store Apps (15) - 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
  13. 添加一个Application Framework Service
  14. MySQL基准测试(benchmark)
  15. Java 基础 break和continue关键字的使用
  16. 【Idea】-NO.162.Idea.1 -【Idea Unable to import maven project: See logs for details】
  17. 第26月第26天 Domain=AVFoundationErrorDomain Code=-11850
  18. eclipse启动时自动多一个javaw.exe的进程解决办法
  19. rsync远程同步的基本配置与使用
  20. 基于bootstrap的文本编辑器组件:Summernote

热门文章

  1. AtCoder Grand Contest 023 C - Painting Machines
  2. js 获取 Url.Action 设置area
  3. common-jdbc:一个基于SpringJdbcTemplate的高性能数据库操作工具类库
  4. CSP学习之导出密钥BLOB 解析
  5. Thrift笔记(一)--Hello Demo
  6. scss-#{}插值
  7. H5新特性-----type=file文件上传
  8. 分布式消息队列kafka
  9. dos.ORM配置和使用
  10. 专家来“搞”| IoT DevKit,物联网界新手大礼包等你来拿