【100例-.NET】判断登录状态,WebAPI重写筛选器ActionFilterAttribute

2021-03-18 14:24

阅读:549

标签:override   value   values   返回   sum   text   获取   request   ESS   

  WebAPI有几个常用的筛选器,都是虚函数类型,只要重写了,就可以在方法、类、派生类使用,属于System.Net.Http.Filter。

  ActionFilterAttribute:Action操作筛选器,一般重写执行前,执行后的2个方法;

  AuthorizationFilterAttribute:授权筛选器,有请求授权时的方法;

  ExceptionFilterAttribute:异常筛选器,有引起异常的方法;

 

ActionFilterAttribute重写:

/// 
    /// 执行操作前的过滤器(可以在方法、类、派生类使用)
    /// 
    [AttributeUsageAttribute(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
    public class MyActionFilter : ActionFilterAttribute 
    {
        /// 
        /// 操作筛选器之前
        /// 
        /// 
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            bool Login = true;
            var token = HttpUtility.ParseQueryString(actionContext.Request.RequestUri.Query).GetValues("token")[0].ToString();
            if (!string.IsNullOrEmpty(token))
            {
                //获取到token,再判断是否存在
                if (!ChkToken(token.ToString())) { Login = false; } 
            }
            else
            {
                Login = false;
            }

            if(!Login)
            {
                //请求返回结果
                string jsonString = "{\"msg\":\"未登录\",\"code\":\"-1\"}";
                HttpResponseMessage reqMsg = new HttpResponseMessage { Content=new StringContent(jsonString,System.Text.Encoding.GetEncoding("UTF-8"), "application/json") };
                actionContext.Response = reqMsg;
            }
            base.OnActionExecuting(actionContext);
        }
    }

 

  

【100例-.NET】判断登录状态,WebAPI重写筛选器ActionFilterAttribute

标签:override   value   values   返回   sum   text   获取   request   ESS   

原文地址:https://www.cnblogs.com/laokchen/p/12355336.html


评论


亲,登录后才可以留言!