WebAuthorize

Posted fger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebAuthorize相关的知识,希望对你有一定的参考价值。

一、WebAuthorize

1、项目名称 WebAuthorize

技术图片

2、加个中间件 过滤请求。

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace WebAuthorize

    public static class AuthorizeExtensio
    
        public static void AddAuthorize(this IApplicationBuilder applicationBuilder)
        
            applicationBuilder.Use(async (currentContext, nextContext) =>
            
                if (currentContext.Request.Headers.ContainsKey("Authorization"))
                
                    var authorize = currentContext.Request.Headers["Authorization"].ToString();
                    if (authorize.Contains("Basic"))//如果是Basic 身份认证
                    
                        var info = authorize.Replace("Basic ", string.Empty);
                        var bytes = Convert.FromBase64String(info);//反解析Basic 64
                        var contents = Encoding.Default.GetString(bytes);
                        var dd = contents.Split(":").ToArray();
                        var userName = dd[0];//用户名
                        var userPwd = dd[1];//密码
                        if (userName == "GeBiLaoWang" && userPwd == "123456")
                        
                            await currentContext.Response.WriteAsync("验证通过").ConfigureAwait(true); //Response.WriteAsync() 需要引用 Microsoft.AspNetCore.Http;
                            await nextContext?.Invoke();
                            return;
                        
                    
                
                currentContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                await currentContext.Response.WriteAsync("See tou tomorrow!").ConfigureAwait(true);
            );
        
    

技术图片

 3、修改配置文件

            //添加服务
            app.AddAuthorize();
            app.Run(async (context) =>
            
                await context.Response.WriteAsync("Hello World!").ConfigureAwait(true);
            );

技术图片

 准备配置请求测试

1、直接访问技术图片

2、配置身份认证信息

技术图片

技术图片

在Authorzation下选 basic Auth, 并把用户名和密码填好

 点一下”Preveiw Request ” PostMan会自动生成请求信息。然后转到Headers下

技术图片

3、测试

技术图片

 

以上是关于WebAuthorize的主要内容,如果未能解决你的问题,请参考以下文章