是否可以在不创建自己的AuthorizationHandler或AuthorizationFilter的情况下引发FallbackPolicy授权事件?理想情况下,我希望引发OnTokenValidated或OnAuthFailure事件并相应地进行日志记录。
public void ConfigureServices(IServiceCollection services)
{
services.AddMicrosoftIdentityWebApiAuthentication(Configuration);
services.AddControllers();
services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
});
// ..
}发布于 2021-03-23 11:23:58
当没有与任何资源相关联的IAuthorizeData实例(例如来自AuthorizeAttribute),并且只由AuthorizationMiddleware使用时,就会使用FallbackPolicy。我认为在这种情况下,随心所欲地触发像OnAuthFailure或OnTokenValidated这样的事件是令人困惑的。但这是你的职责。在这里,我只想展示一个点,在这个点上,你可以注入你的代码来引发你想要的事件。实际上它只是一种内联授权处理程序,您可以在使用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();https://stackoverflow.com/questions/66756249
复制相似问题