Asp.net core 发布后禁止在生产中使用招摇过市UI 403

Asp.net core 发布后禁止在生产中使用招摇过市UI 403,asp.net-core,swagger,swashbuckle.aspnetcore,Asp.net Core,Swagger,Swashbuckle.aspnetcore,我在Asp.Net 5.0WebApi上安装了swashback.AspNetCore6.1.4 API使用Microsoft.AspNetCore.Authentication.JwtBearer5.0.6进行保护 我添加了一个带有HTTPPOST端点[AllowAnonymous]过滤器的LoginController,以生成初始JWT 在本地运行时,我可以使用Swagger UI调用它并生成一个令牌。但是,如果我发布到我们的预生产服务器进行进一步测试,那么在通过swagger调用登录端点时

我在
Asp.Net 5.0
WebApi上安装了
swashback.AspNetCore
6.1.4

API使用Microsoft.AspNetCore.Authentication.JwtBearer
5.0.6
进行保护

我添加了一个带有
HTTPPOST
端点
[AllowAnonymous]
过滤器的
LoginController
,以生成初始JWT

在本地运行时,我可以使用Swagger UI调用它并生成一个令牌。但是,如果我发布到我们的预生产服务器进行进一步测试,那么在通过swagger调用登录端点时,我们会得到一个
403禁止的
错误?不过我可以通过邮递员成功地打电话给它

swagger ui
配置如下:int-eh
Startup.cs

   services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v2", new OpenApiInfo { Title = "Services.WebApi", Version = "v2" });

                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);

                var securitySchema = new OpenApiSecurityScheme
                {
                    Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\".",
                    Name = "Authorization",
                    In = ParameterLocation.Header,
                    Type = SecuritySchemeType.Http,
                    Scheme = "bearer",
                    Reference = new OpenApiReference
                    {
                        Type = ReferenceType.SecurityScheme,
                        Id = "Bearer"
                    }
                };

                c.AddSecurityDefinition("Bearer", securitySchema);

                var securityRequirement = new OpenApiSecurityRequirement
                {
                    { securitySchema, new[] { "Bearer" } }
                };

                c.AddSecurityRequirement(securityRequirement);
            });
然后在
配置
方法中

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();

        }
        else
        {
            app.UseExceptionHandler("/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
            app.UseHttpsRedirection();
            app.UseCors();
        }  
      
       app.UseSwagger();
        app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v2/swagger.json", "Services.WebApi ASP NET Core 5 v2"));
有人能告诉我问题出在哪里吗

编辑

我还可以确认,如果我通过postman(到预生产服务器URL)生成JWT,然后将其添加到UI顶部的Swagger UI授权中

  • 调用其中一个HTTPGGET端点将成功返回
  • 调用POST api/登录端点仍然失败(尽管JWT已添加到该端点)

  • 你能给我们看看应用程序之前调用的中间件吗。UseSwagger?是的,没有问题,将立即更新。好的,我从网络输出中计算出来。Swagger默认添加
    内容类型:application/json;元数据=最小值;odata.streaming=true
    请求(在本地工作)。但是在预生产服务器上导致403。将此更改为
    内容类型:application/json
    解决了此问题。也感谢您抽出时间提供帮助:)