【问题标题】:How do I configure Basic Auth in Swagger?如何在 Swagger 中配置基本身份验证?
【发布时间】:2021-10-18 20:01:54
【问题描述】:

在招摇中,有一个 .BasicAuth("basic").Description("Basic HTTP Authorization") 我取消注释的行。

但是,当尝试使用其中一个端点时,点击“试试看!”按钮提示我登录。无论我在此框中输入什么(用户名和密码框),我都无法运行或测试端点,因为我未经授权。我需要在 SwaggerConfig.cs 文件中或其他地方做什么才能测试端点?

我使用的是 .Net Framework 而不是 .Net Core,并且我没有在其他地方看到使用的 preauthorizeBasic() 扩展。

在我的 web.config 文件中,我有 2 个 API 密钥,一个用于用户,一个用于密码,但我不知道如何使用它们来验证 SwaggerConfig.cs 文件中的 swagger。

在我看来,取消注释 .BasicAuth("basic") 行似乎对 Swagger UI 没有任何作用。不包括它或包括它没有区别。系统仍然提示我登录我的“localhost:”页面,但我无法通过此框。

我很肯定我需要设置 BasicAuth 以获取用户名和密码的这 2 个 API 密钥,但我不知道将这些值放在哪里,因为即使我将它们放在登录框中它也不起作用。

感谢您的帮助...

【问题讨论】:

    标签: c# .net swagger swagger-ui swashbuckle


    【解决方案1】:

    你能给我们看一段代码吗,在你的启动中你应该有这样的东西:

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "BasicAuth", Version = "v1" });
                c.AddSecurityDefinition("basic", new OpenApiSecurityScheme
                {
                    Name = "Authorization",
                    Type = SecuritySchemeType.Http,
                    Scheme = "basic",
                    In = ParameterLocation.Header,
                    Description = "Basic Authorization header using the Bearer scheme."
                });
                c.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    {
                          new OpenApiSecurityScheme
                            {
                                Reference = new OpenApiReference
                                {
                                    Type = ReferenceType.SecurityScheme,
                                    Id = "basic"
                                }
                            },
                            new string[] {}
                    }
                });
            });
    

    在 UI 中,您应该会看到一个带有挂锁的“授权”按钮

    点击它会弹出一个窗口

    然后,当您测试您的 api 时,会发送基本标头

    这个tuto 会很有帮助

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2011-05-10
      • 2017-08-17
      • 2020-06-08
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 2013-12-28
      相关资源
      最近更新 更多