首页 > Web开发 > 详细

WebAuthorize

时间:2019-08-27 00:36:02      阅读:109      评论:0      收藏:0      [点我收藏+]

一、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

原文:https://www.cnblogs.com/fger/p/11415772.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!