【问题标题】:Fallback Policy Log Authorization Events回退策略日志授权事件
【发布时间】:2021-06-19 16:47:58
【问题描述】:

是否可以在不创建我自己的AuthorizationHandlerAuthorizationFilter 的情况下引发FallbackPolicy 授权事件?理想情况下,我想引发 OnTokenValidatedOnAuthFailure 事件并相应地记录。

public void ConfigureServices(IServiceCollection services)
{
    services.AddMicrosoftIdentityWebApiAuthentication(Configuration);

    services.AddControllers();

    services.AddAuthorization(options =>
    {
        options.FallbackPolicy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();

    });

    // ..
}

【问题讨论】:

    标签: c# asp.net-core authorization asp.net-identity


    【解决方案1】:

    FallbackPolicy 用于没有与任何资源关联的IAuthorizeData 实例(例如来自AuthorizeAttribute)并且它仅由AuthorizationMiddleware 使用。我认为在这种情况下按您的意愿触发 OnAuthFailureOnTokenValidated 之类的事件会让人感到困惑。但那是你的部分。在这里,我只想展示您可以注入代码以引发您想要的事件的一点。实际上它只是一种内联授权处理程序,您可以在使用AuthorizationPolicyBuilder 构建回退策略时指定代码,如下所示:

    options.FallbackPolicy = new AuthorizationPolicyBuilder()
                                 .RequireAuthenticatedUser()
                                 .RequireAssertion(context => {
                                     //here you can inject your code
                                     //return true/false to make the requirement valid/invalid
                                     //for logging purpose, we can return true here
                                     return true;
                                  }).Build();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-13
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      相关资源
      最近更新 更多