zoukankan      html  css  js  c++  java
  • WebApi Basic Auth认证

    第一步、新建AuthFilterAttribute类

     1  public class AuthFilterAttribute : AuthorizeAttribute
     2     {
     3         public override void OnAuthorization(HttpActionContext actionContext)
     4         {
     5             //如果用户方位的Action带有AllowAnonymousAttribute,则不进行授权验证
     6             if (actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any())
     7             {
     8                 return;
     9             }
    10             if (actionContext.Request.Headers.Authorization != null)
    11             {
    12                 string userInfo = Encoding.Default.GetString(Convert.FromBase64String(actionContext.Request.Headers.Authorization.Parameter));
    13                 //用户验证逻辑
    14                 if (string.Equals(userInfo, string.Format("{0}:{1}", "Parry", "123456")))
    15                 {
    16                     IsAuthorized(actionContext);
    17                 }
    18                 else
    19                 {
    20                  HandleUnauthorizedRequest(actionContext);
    21                 }
    22             }
    23             else
    24             {
    25                HandleUnauthorizedRequest(actionContext);
    26             }
    27         }
    28        
    29     }

    第二步、注册全局Filter

    在WebApiConfig类中添加以下代码

    //注册全局Filter
    config.Filters.Add(new AuthFilterAttribute());

    第三步、客户端验证

    1.通过NuGet方便引入到任何项目 ( Install-Package restsharp )

    2.客户端代码

    1 var client = new RestClient("http://192.168.0.102:8003/API/Order/get");
    2 var request = new RestRequest(Method.GET);
    3 request.AddHeader("Postman-Token", "b5cb9faf-e1f1-484c-b14a-5f90af60a074");
    4 request.AddHeader("Cache-Control", "no-cache");
    5 request.AddHeader("Authorization", "Basic UGFycnk6MTIzNDU2");
    6 IRestResponse response = client.Execute(request);
  • 相关阅读:
    mysql 安装失败 start service执行不下去
    C# 打开钱箱支持北洋、佳博、爱普生
    CF1093E Intersection of Permutations [分块 +bitset]
    CF895C Square Subsets [线性基]
    线性基学习笔记
    长链剖分学习笔记
    GSS 系列题解
    P3206 [HNOI2010]城市建设 [线段树分治+LCT维护动态MST]
    线段树分治学习笔记
    [CF662C Binary Table][状压+FWT]
  • 原文地址:https://www.cnblogs.com/qzxj/p/8979902.html
Copyright © 2011-2022 走看看