首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回退策略日志授权事件

回退策略日志授权事件
EN

Stack Overflow用户
提问于 2021-03-23 10:02:16
回答 1查看 61关注 0票数 2

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

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddMicrosoftIdentityWebApiAuthentication(Configuration);

    services.AddControllers();

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

    });

    // ..
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-23 11:23:58

当没有与任何资源相关联的IAuthorizeData实例(例如来自AuthorizeAttribute),并且只由AuthorizationMiddleware使用时,就会使用FallbackPolicy。我认为在这种情况下,随心所欲地触发像OnAuthFailureOnTokenValidated这样的事件是令人困惑的。但这是你的职责。在这里,我只想展示一个点,在这个点上,你可以注入你的代码来引发你想要的事件。实际上它只是一种内联授权处理程序,您可以在使用AuthorizationPolicyBuilder构建回退策略时指定正确的代码,如下所示:

代码语言:javascript
复制
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();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66756249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档