Swagger 中 測驗介面沒Basic Authentication 驗證的token輸入框
之前搭建api結構 時 集成了下Basic Authentication 驗證,然后為了方便測驗又部署了Swagger,最開始的時候很正常,可以在Swagger 中測驗介面,第二天,在想在Swagger中測驗的時候token 輸入框沒了,

檢測了下代碼,發現沒用加[AllowAnonymous],所有的介面都沒token輸入框了,網上給的教程讓在Swagger 頂部的位置輸入token

測驗了下,發現在頂部輸入token時,token 時放在 請求介面里一起過去的,然后我需要的是在介面中header 中攜帶
解決方式
在\App_Start 檔案下的SwaggerConfig.cs 檔案中添加如下代碼:
public class HttpHeaderFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters == null)
operation.parameters = new List<Parameter>();
var filterPipeline = apiDescription.ActionDescriptor.GetFilterPipeline(); //判斷是否添加權限過濾器
var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Instance).Any(filter => filter is IAuthorizationFilter); //判斷是否允許匿名方法
var allowAnonymous = apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any();
if (isAuthorized && !allowAnonymous)
{
operation.parameters.Add(new Parameter { name = "Authorization", @in = "header", description = "Token", required = true, type = "string" });
}
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/226154.html
標籤:其他
上一篇:lol圖片爬取
