【问题标题】:IDX20803: Unable to obtain configuration from - Multiple AuthorityIDX20803:无法从 - 多权限获取配置
【发布时间】:2020-04-17 15:14:46
【问题描述】:

首先,让我解释一下为什么我的问题与网站上已针对此错误提出的其他问题不同。我知道权限已关闭,不想修复它

现在,上下文是this article from Microsoft

services.AddAuthorization(options =>
{
    var defaultAuthorizationPolicyBuilder = new AuthorizationPolicyBuilder(
        JwtBearerDefaults.AuthenticationScheme,
        "AnotherJwtBearerSchemee");
    defaultAuthorizationPolicyBuilder = 
        defaultAuthorizationPolicyBuilder.RequireAuthenticatedUser();
    options.DefaultPolicy = defaultAuthorizationPolicyBuilder.Build();
});

由于默认授权策略被覆盖,因此可以 在控制器中使用 [Authorize] 属性。然后控制器 接受由第一个或第二个颁发者发出的带有 JWT 的请求。

现在,上面的功能可以工作了,拥有第一或第二权限的用户可以成功地对我的服务进行身份验证。但是 - 当其中一个权限关闭时,整个身份验证失败,这令人沮丧,因为我想使用任一权限进行身份验证,但最终取决于是否启动和在线

我的问题是:如果其中一个权威机构未能回答,是否仍然可以忽略异常。或者,如果有另一种方法可以允许 MS Doc 中引用的预期行为“控制器然后接受由第一个或第二个颁发者发出的带有 JWT 的请求”

【问题讨论】:

    标签: asp.net-core .net-core asp.net-authorization asp.net-authentication


    【解决方案1】:

    这是开发团队的设计决定。他们不会在未来的任何时候改变它。 此问题的解决方法是使错误静音,以防止整个操作失败。将这段代码添加到 AddJwtBearer 中

            options.Events = new JwtBearerEvents()
            {
                OnAuthenticationFailed = context =>
                {
                    context.NoResult();
                    return Task.FromResult(0);
                }
            };
    

    Issue ref

    【讨论】:

      猜你喜欢
      • 2021-04-29
      • 2021-08-04
      • 2021-07-15
      • 1970-01-01
      • 2021-09-10
      • 2020-07-30
      • 2018-11-17
      • 2015-02-20
      • 2022-12-17
      相关资源
      最近更新 更多