码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2020-02-24 09:29:53      阅读:81      评论:0      收藏:0      [点我收藏+]

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

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

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

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

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

 

ActionFilterAttribute重写:

/// <summary>
    /// 执行操作前的过滤器(可以在方法、类、派生类使用)
    /// </summary>
    [AttributeUsageAttribute(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
    public class MyActionFilter : ActionFilterAttribute 
    {
        /// <summary>
        /// 操作筛选器之前
        /// </summary>
        /// <param name="actionContext"></param>
        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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!