Asp.net Core 过滤器(AuthorizationFilter,ActionFilter)

asp.net core 里面的过滤器有这么多(还提供的异步的过滤器):

IActionFilter

IResourceFilter

IResultFilter

IAuthorizationFilter

IPageFilter

IExceptionFilter

一、身份验证过滤器AuthorizationFilter

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace CoreTest.Filter
{
    public class AuthFilter : Attribute, IAuthorizationFilter
    {
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            if (context.HttpContext.User.Identity.Name != "1") //只是个示范作用
            {
                //未通过验证则跳转到无权限提示页
                RedirectToActionResult content = new RedirectToActionResult("NoAuth", "Exception",null);
                context.Result = content;
            }
        }
    }
}

二、行为过滤器ActionFilter

using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZCommon;

namespace CoreTest.Filter
{
    public class OperationLogFilter : Attribute, IActionFilter
    {
        public OperationLogFilter(string operType)
        {
            this.OperType = operType;
        }
        public string Tag { get; set; }
        public string OperType { get; set; }
        /// <summary>
        /// 执行前
        /// </summary>
        /// <param name="context"></param>
        public void OnActionExecuting(ActionExecutingContext context)
        {
            LogHelper.WriteLog("参数:" + context.HttpContext.Request.Host, LogType.remark);
        }

        /// <summary>
        /// 执行后
        /// </summary>
        /// <param name="context"></param>
        public void OnActionExecuted(ActionExecutedContext context)
        {
        }

    }
}

猜你喜欢

转载自blog.csdn.net/qq_26900081/article/details/83185182