zoukankan      html  css  js  c++  java
  • Web API 授权筛选器

    方式一、全局认证

    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务
            config.Filters.Add(new ApiAuthorizeAttribute());
        }
    }
    

    方式二、局部认证

    在控制器前加认证特性[ApiAuthorizeAttribute],方法名前加认证特性

    [ApiAuthorizeAttribute]
    public class ValuesController : ApiController
    {
        [Authorize]
        public void Post([FromBody]string value)
        {
        }
    }
    

     以下为自定义授权筛选器文件

    /// <summary>
    /// 授权筛选器
    /// </summary>
    public class ApiAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool IsAuthorized(HttpActionContext actionContext)
        {
            var tokenHeader = from t in actionContext.Request.Headers where t.Key == "token" select t.Value.FirstOrDefault();
            if (tokenHeader != null)
            {
                string token = tokenHeader.FirstOrDefault();
                if (!string.IsNullOrEmpty(token))
                {
                    try
                    {
                        return true;
                    }
                    catch (Exception ex)
                    {
                        return false;
                    }
                }
            }
            return false;
        }
    
        /// <summary>
        /// 处理授权失败的请求
        /// </summary>
        protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
        {
            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, new
            {
                code = "3001",
                msg = "false",
                data = new { }
            }, "application/json");
        }
    }
    
  • 相关阅读:
    Vscode 隐藏 工作区中的目录
    java 中 静态泛型方法书写
    Vscode 配置 maven debug
    vscode 配置 java utf-8 编码
    node.js 设置 淘宝 镜像
    vscode 注册表
    ESET Smart Security 6 – 免费60天(SG)
    WIN-8“内置管理员无法激活此应用”问题
    怎样更新PE内的工具
    使用Setup安装Windows8 RTM方法
  • 原文地址:https://www.cnblogs.com/sntetwt/p/11760473.html
Copyright © 2011-2022 走看看