.net core 虚张声势5.3.1虚张声势用户界面未发送授权标头

.net core 虚张声势5.3.1虚张声势用户界面未发送授权标头,.net-core,jwt,swagger-ui,.net-core-3.1,.net Core,Jwt,Swagger Ui,.net Core 3.1,我将一个项目从DotnetCore2.1迁移到了3.1。除了在使用swagger ui时未发送授权标头外,其他一切都看起来不错。我发现了几个这样的例子,试图解决这个问题,这就是它的结果 标题 Startup.cs services.AddAuthentication(options => { options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultAu

我将一个项目从DotnetCore2.1迁移到了3.1。除了在使用swagger ui时未发送授权标头外,其他一切都看起来不错。我发现了几个这样的例子,试图解决这个问题,这就是它的结果

标题

Startup.cs
   services.AddAuthentication(options =>
   {
      options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
      options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
       options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    })
    .AddJwtBearer(options =>
    {
      options.RequireHttpsMetadata = (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development") ? false : true;
      options.ClaimsIssuer = jwtAppSettingOptions[nameof(JwtIssuerOptions.Issuer)];
            options.TokenValidationParameters = tokenValidationParameters;
    });


  services.AddSwaggerGen(c =>
  {
   ...
   c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
   {
      Name = "Authorization",
      Type = SecuritySchemeType.ApiKey,
      Scheme = "Bearer",
      BearerFormat = "JWT",
      In = ParameterLocation.Header,
      Description = "JWT Authorization header using the Bearer scheme."
   });
   c.AddSecurityRequirement(new OpenApiSecurityRequirement
     {
       {
         new OpenApiSecurityScheme
         {
           Reference = new OpenApiReference
           {
               Type = ReferenceType.SecurityScheme,
               Id = "Bearer"
           }
         },
         new string[] {}
    }
  });
  c.EnableAnnotations();
  //
  c.OperationFilter<HeaderParametersFilter>();
  ...
  }
  ...
   if (isAuthorized && !allowAnonymous) {
            AddHeader(operation, "Authorization", "access token", "string", true, "Bearer {access token}");        
    }
   ...
    private static void AddHeader(OpenApiOperation operation, string name, string description, string type, bool isRequired, string defaultValue)
    {
        operation.Parameters.Add(new OpenApiParameter
        {
            Name = name,
            In = ParameterLocation.Header,
            Description = description,
            Required = isRequired,
            Schema = new OpenApiSchema
            {
                Type = type,
                Default = new OpenApiString(defaultValue)
            }
        });
    }