MVC5 Attribute(特性)
2024-08-27 17:33:36
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配置:
最新文章
- 混合框架中Oracle数据库的还原处理操作
- Swift泛型Protocol对比C#泛型Interface
- react路由深度解析
- jQuery插件-表单验证插件-Validation
- Mesa 3D
- JS通用方法总结(一)
- Windows7部署WordPress傻瓜式教程(IIS7.5+MySQL+PHP+WordPress)
- InnoDB存储引擎
- Struts2+JSON+JQUERY DEMO
- PID参数整定快速入门(调节器参数整定方法)
- Cocos2d-x内置粒子系统
- 重新想象 Windows 8 Store Apps (15) - 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
- 添加一个Application Framework Service
- MySQL基准测试(benchmark)
- Java 基础 break和continue关键字的使用
- 【Idea】-NO.162.Idea.1 -【Idea Unable to import maven project: See logs for details】
- 第26月第26天 Domain=AVFoundationErrorDomain Code=-11850
- eclipse启动时自动多一个javaw.exe的进程解决办法
- rsync远程同步的基本配置与使用
- 基于bootstrap的文本编辑器组件:Summernote
热门文章
- AtCoder Grand Contest 023 C - Painting Machines
- js 获取 Url.Action 设置area
- common-jdbc:一个基于SpringJdbcTemplate的高性能数据库操作工具类库
- CSP学习之导出密钥BLOB 解析
- Thrift笔记(一)--Hello Demo
- scss-#{}插值
- H5新特性-----type=file文件上传
- 分布式消息队列kafka
- dos.ORM配置和使用
- 专家来“搞”| IoT DevKit,物联网界新手大礼包等你来拿