Swashbuckle.AspNetCore v1.0.0 与 OAuth2,流程:应用程序 -> IdentityServer4

2024-01-11

我似乎无法让我的 .net core Web API 与 swashbuckle、OAuth2 和应用程序流程一起工作。当我单击“授权”按钮时,Fiddler 显示调用正常,并且我的本地 IdentityServer(4) 回复了 access_token。这一切都很棒,但我不认为 Swagger 会注意到这一点,什么也没有发生,而且我无法在没有收到 401 的情况下触发我的控制器方法。我没有看到 cookie,什么也没有。我确信我错过了一些非常微不足道的事情。有人可以帮我吗?

相关代码:

Startup.cs 中的配置服务

c.AddSecurityDefinition("oauth2", new OAuth2Scheme
{                    
    Type = "oauth2",
    Flow = "application",                      
    TokenUrl = "http://localhost:61798/connect/token",
    Scopes = new Dictionary<string, string>
    {
        { "readAccess", "Access read operations" },
        { "writeAccess", "Access write operations" }
    }
});

在Startup.cs中配置

app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
    Authority = "http://localhost:61798",
    RequireHttpsMetadata = false,
    ApiName = "api1",
    AutomaticAuthenticate = true, //Doesn't change anything...
});

....

app.UseSwagger();
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs");
    c.ConfigureOAuth2("Swagger", "swaggersecret", "swaggerrealm", "Swagger UI");                
});

我的 IdentityServer 配置正常。我可以在 Postman 和简单的客户端中调用这个 API,没有任何问题。我唯一的问题是 Swagger (Swashbuckle.AspNetCore 1.0.0)。


我们当前的项目有一个非常相似的设置。我们的其余 API 通过 jwt 承载身份验证和 azure ad b2c 进行保护。在这种情况下,没有办法自动获取令牌。

该解决方案非常适合我们:https://stackoverflow.com/a/39759152/536196 https://stackoverflow.com/a/39759152/536196

services.AddSwaggerGen(c =>
{
    c.OperationFilter<AuthorizationHeaderParameterOperationFilter>();
});

之后,当您运行 swagger UI 时,您应该会看到令牌的附加字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swashbuckle.AspNetCore v1.0.0 与 OAuth2,流程:应用程序 -> IdentityServer4 的相关文章

随机推荐

  • Zend GetText 和 .mo .po 文件

    我继承了一家开发公司的应用程序 我需要为我的网站生成 mo 和 po 文件 这是我在引导程序中的内容 translate new Zend Translate gettext ROOT PATH languages en default m
  • C# - Visual Studion 2022 中的多行逐字字符串不包含换行符 (\r)

    我们在定义逐字多行字符串时面临问题 some string 在 Visual Studio 2022 中 虽然我们在 Windows 机器和变量上编译代码Environment NewLine定义 r n作为新行 逐字多行字符串仅包含 n
  • 在 Airflow GUI 外部创建连接

    我想在不与 Airflow GUI 交互的情况下创建 S3 连接 是否可以通过airflow cfg或命令行 我们正在使用 AWS 角色 以下连接参数适用于我们 aws account id xxxx role arn yyyyy 因此 在
  • 适合初学者的 Slim 框架 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 人们如何学习如何使用这个系统 我似乎找不到任何教程或书籍或任何有关如何使用该程序的内容 是的 他们的网站简要解释了一些事情 但没有任何澄清
  • 如何获取WebBrowser控件中的页面标题?

    当我导航到不同的网站时 如何获取 WebBrowser 控件中的页面标题 xmlns xmlns phone clr namespace Microsoft Phone Controls assembly Microsoft Phone 以
  • 为什么Android要求包名至少有两个标识符?

    创建新的 Android 应用程序时 Eclipse http androidcodingtips blogspot com 2011 08 package name must have at least two html抱怨Package
  • 解析附近时 JSON 中位置 XXX 出现意外标记的错误

    I npm install在一个目录上package json对于我的公司项目 然而 它不断给我带来各种错误 Unexpected token in JSON at position 我已经做好了npm cache clean force
  • 在 Bootstrap 3 中启用触摸事件的推荐方法?

    既然 Bootstrap 3 已经发布 那么启用触摸的推荐选项是什么 像之前一样 https stackoverflow com questions 16759299 is twitter bootstrap suitable for to
  • 音频播放完毕后通知

    嗯 我正在尝试实现录音的基本功能 例如 录音 播放 暂停 停止 我可以完成所有这些 但唯一的问题是音频完成后如何收到通知 玩 我的意思是 如果我播放一个音频文件 那么一旦它播放完毕 我想要一个它现在停止的通知 到目前为止我已经用过 mPla
  • 在 Roxygen 中记录时:如何在 @details 中制作逐项列表?

    例如 在 details 部分中向 roxygen2 添加逐项列表的适当语法是什么 我可以创建一个 Latex 列表环境吗 似乎换行符被简单地忽略了 即 details text describing parameter inputs in
  • 错误@angular/fire构建错误地扩展了接口

    我开始新的 Ionic Angular 项目并添加 Angular Fire 包 当我运行 ionicserve 时 出现以下错误 Error node modules angular fire compat firestore inter
  • 忽略全局覆盖的 new/delete

    您好 我正在使用一个已全局覆盖 new delete 的库 但我对这个库有一个问题 问题是它必须在主函数中手动初始化 现在我尝试使用另一个库在调用 main 之前初始化一些函数 不幸的是这个库在这些函数中使用了 new 所以我收到错误 因为
  • 需要建议新的 AsyncTask 递归调用

    我需要建议这个解决方案是否可以接受并且不会导致溢出 我更新使用 AsyncTask 读取的数据 在 AsyncTask 完成后我需要一次又一次更新 该解决方案是否可以接受且安全 private class DownloadFilesTask
  • 如何在sql中转义“'”

    您好 我正在数据库中搜索名称组合 我传递的组合如下 firstName firstName middleName middleName lastName lastName 这很好用 但问题来了 名字里有一些 我该如何纠正呢 例如 Johns
  • MongoDB - 如何对对象内的多个属性进行查询并对结果进行分组

    I m trying学习 MongoDB 但我似乎不知道如何做到这一点 假设我有三个这样的对象 id 99990 type 15 attributes id 1 value 115 id 99991 type 5 attributes
  • Windows 上的 boost python 在 import("__main__") 时崩溃;

    我正在编写一个使用嵌入式 boost python 的程序 我的程序在 Linux Mint 上运行没有问题 但在 Windows 上却很痛苦 我正在使用 MingW 因此我尝试按照本网站上另一个问题的说明创建导入库 考虑到所有这些 程序编
  • 通过 Id (int) 获取视图 Id (string) 的更简单方法

    我的布局中有 24 个按钮 所有这些按钮都执行类似的操作 因此我想创建一个通用功能 但首先我需要知道按钮的名称 xml id 这是按钮的 XML 代码
  • Ada GPS IDE 似乎找不到 GtkAda

    我已经安装了 GNAT 编程工作室 GPS 和 GtkAda 它们似乎都工作正常 但是当我尝试在 从模板新建项目 下构建简单窗口项目时 我收到一堆错误 提示 文件 gtk ads 未找到 这似乎是一个目录 依赖性问题 GPS 不知道在哪里寻
  • UINavigationBar 使用动画更改色调颜色

    是否可以通过动画更改色调以获得更平滑的效果 这对我不起作用 UIView beginAnimations nil context nil self navigationController navigationBar setTintColo
  • Swashbuckle.AspNetCore v1.0.0 与 OAuth2,流程:应用程序 -> IdentityServer4

    我似乎无法让我的 net core Web API 与 swashbuckle OAuth2 和应用程序流程一起工作 当我单击 授权 按钮时 Fiddler 显示调用正常 并且我的本地 IdentityServer 4 回复了 access