首页 > 其他分享 >.net webapiSwagger启用ApiKey身份验证

.net webapiSwagger启用ApiKey身份验证

时间:2023-09-26 11:55:50浏览次数:53  
标签:ApiKey swaggerApikey request 身份验证 Equals apikey net

 

直接在SwaggerConfig中设置请求头,这里请求头用的默认值apiKey,也可以自己定义一个

 

private const string swaggerApikey = "Authorization";

GlobalConfiguration.Configuration
.MessageHandlers.Add(new SwaggerMessageHandler());

 GlobalConfiguration.Configuration 
                .EnableSwagger(c =>
                    {

                        c.ApiKey(swaggerApikey).Description("Filling bearer token here")
                        .Name("Bearer")
                        .In("header");
                      

                    })
                .EnableSwaggerUi(c =>
                    {
                       
                        c.EnableApiKeySupport(swaggerApikey, "header");  
                    }); 
 internal class SwaggerMessageHandler : DelegatingHandler
        {
            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
            {
                if (request.RequestUri.LocalPath.Equals("/swagger/docs/v1"))
                {
                    var apikey = request.Headers.FirstOrDefault(x => x.Key.Equals(swaggerApikey)).Value?.FirstOrDefault();
                    if (!"apikey".Equals(apikey))
                        return Task.FromResult(new HttpResponseMessage(HttpStatusCode.Forbidden));
                }
                return base.SendAsync(request, cancellationToken);
            }
        }

 

标签:ApiKey,swaggerApikey,request,身份验证,Equals,apikey,net
From: https://www.cnblogs.com/qingjiawen/p/17729772.html

相关文章

  • 乌班图18.04安装.net 6.0
    乌班图18.04安装.net6.0wgethttps://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb-Opackages-microsoft-prod.debsudodpkg-ipackages-microsoft-prod.debsudoapt-getinstallapt-transport-httpssudoapt-getupdatesudoapt-getin......
  • VSCode 安装插件 Unity 后,一直弹 The .NET Core SDK cannot be located
    如题。明明已经安装了.Net7.0。并且添加到了PATH中。(也就是在终端/CMD可以通过dotnet命令访问到。)但Vscode还是一直弹The.NETCoreSDKcannotbelocated。然后开始下载.Net7.0。解决方案写在了.NETRuntimeInstallTool的细节描述里。按照描述去为对应的......
  • 使用 OpenTelemetry 构建 .NET 应用可观测性(3):.NET SDK 概览
    目录前言概览opentelemetry-dotnetopentelemetry-dotnet-contribopentelemetry-dotnet-instrumentationSDK的基本使用安装依赖ResourcesResourceBuilder.CreateDefault()ResourceBuilder.CreateEmpty()TracingActivitySource&ActivityTracing模块的使用MetricsMeterProvider&......
  • 记一次 .NET某新能源MES系统 非托管泄露
    一:背景1.讲故事前些天有位朋友找到我,说他们的程序有内存泄露,跟着我的错题集也没找出是什么原因,刚好手头上有一个7G+的dump,让我帮忙看下是怎么回事,既然找到我了那就给他看看吧,不过他的微信头像有点像二道贩子,不管到我这里是不是三道,该分析的还得要分析呀。......
  • netmiko模块
     #!/bin/python#-*-coding:UTF-8-*-#pipinstallnetmikofromnetmikoimportConnectHandler,SSHDetectfromnetmiko.exceptionsimportNetMikoAuthenticationException,NetMikoTimeoutExceptionimportthreadingimportdatetimeimportqueueimportre,os......
  • .NET MAUI 简介
    简介.NETMAUI是一种多平台框架,用于使用C#和XAML创建本机桌面和移动应用。.NETMAUI是Multi-platformApplicationUserInterface(多平台应用程序用户界面)的首字母缩略词。借助.NETMAUI,可设计能够在Windows、Android、iOS、iPadOS和macOS上运行的移动应用。假设......
  • 在 Visual Studio 中创建 .NET MAUI 项目
    安装并配置.NETMAUI工具后,可以使用VisualStudio生成.NETMAUI应用。在本单元中,你将了解VisualStudio中.NETMAUI模板的结构。你将使用此模板创建跨平台移动和桌面应用。如何入门若要使用VisualStudio创建新的.NETMAUI项目,请在“创建新项目”对话框中选择.......
  • 描述 .NET MAUI 体系结构
    跨平台应用开发使用的一种常见模式是考虑用户界面中的业务逻辑,然后为每个平台开发单独的用户界面和UI逻辑。虽然每种类型的设备的业务逻辑保持不变,但驱动应用和显示数据的代码可能会有所不同。出现这种差异是因为设备所提供的功能、API和特性不相同。以这种方式构建多平台应......
  • 创建第一个 .NET MAUI 应用
    在本练习中,你将开始为杂货连锁店构建.NETMAUI应用。你将使用模板生成默认应用,并在Windows和Android模拟器中运行它。你将在稍后的练习中修改此应用,以自定义用户界面并添加杂货连锁店应用所需的功能。创建新项目打开VisualStudio并创建一个新的解决方案。此操作会......
  • VMware Aria 曝光“关键”身份验证漏洞,6.x 版本均受影响
    导读近日消息,VMwareAriaOperationsforNetworks近日曝光了一个高危的身份验证漏洞,远程攻击者可以绕过SSH身份认证,访问专用终端。VMwareAria是一款用于管理和监控虚拟化环境和混合云的套件,支持IT自动化、日志管理、分析生成、网络可见性、安全性和容量规划以及......