分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

MVC5 Attribute(特性)

发布时间:2023-09-06 02:17责任编辑:林大明关键词:MVC

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;//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 ==1; ???????} ???????/// <summary> ???????/// 当检查入口返回false会进入到这里 ???????/// </summary> ???????/// <param name="filterContext"></param> ???????protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) ???????{ ???????????if (filterContext == null) ???????????{ ???????????????throw new ArgumentNullException("filterContext"); ???????????} ???????????else ???????????{ ???????????????if (status == 2) //没有登陆的页面 ???????????????{ ???????????????????filterContext.Result = new RedirectResult(""); ????????????????} ???????????????else if (status == 3) //没有权限访问的页面 ???????????????{ ???????????????????filterContext.Result = new RedirectResult(""); ???????????????} ???????????} ???????} ???}}
View Code

使用:

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("");//跳转页面 ???????} ???}}
View Code

使用:

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

特性上设置参数:

 web.config配置:

MVC5 Attribute(特性)

原文地址:https://www.cnblogs.com/Sea1ee/p/9759487.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved