c# - 即使第一个没有成功,Asp.Net Core 策略也会运行所有要求
问题描述
我正在为 Web api 创建自定义策略。我假设在策略中要求经过身份验证的用户会阻止运行其他要求。我知道添加多个要求会迫使它们全部通过,所以基本上我看到多个要求有&&
关系,但它们似乎更像是一种&
关系。
var requireUser = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("USER_ID")
.Build();
options.DefaultPolicy = requireUser;
options.AddPolicy("RequireSomeDatabaseProperty",
p => p.Combine(requireUser)
.AddRequirements(new SomeDatabasePropertyRequirement));
我发现将进行数据库调用。由于它将基于USER_ID
声称我可能不得不在那里放置一个警卫,使requireUser
政策完全静音。
这是预期的用途,还是这里有其他问题。combine()
不像我认为的那样有效?
如果用户未通过身份验证,我是否可以仅结束对 require 用户的授权过程?
解决方案
但是您可以通过设置InvokeHandlersAfterFailure
为 False来改变这种行为
推荐阅读
- angular5 - ng add 不适用于使用 angular 5 的 ngx-bootstrap
- android - 在 Service 、Alarm Manager 和 Job Scheduler 中哪个概念最好使用
- azure - 如何在 Azure 流分析中解压缩 Gzip 数据?
- redis - Redis 键在集群模式下被自动删除
- xml - xml 类型元素的术语是什么
- xamarin.forms - 如何在 xamarin StackLayout 中为 TextEdit 和 Button 提供 ID
- javascript - 如何修复 CSS 切换背景颜色?
- r - R中是否有任何方法可以将第一列作为标题
- python - 对任意长度的 List[str] 进行多次相等测试以解决 LongestCommonPrefix
- google-cloud-sql - 云作曲家中没有名为“gcp_sql_operator”的模块