c# - 将要求添加到默认 [授权] 策略
问题描述
在 ASP.Net Core 中,您可以将自定义策略添加到.AddAuthorization
.
但是,我需要向默认策略添加一个要求,因为它将在每个请求中使用。有没有一种方法可以做到这一点,而无需创建自定义策略并始终使用 指定它[Authorize("Policy")]
?
services.AddAuthorization(options =>
{
options.AddPolicy("Unexpired",
policy => policy.Requirements.Add(new <requirement>));
...
有没有办法让这个政策成为默认政策的一部分?
解决方案
在 ASP.NET Core 5 中,它可能是您正在寻找的option
's :DefaultPolicy
var unexpiredPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser() // Remove if you don't need the user to be authenticated
.AddRequirements(new MyRequirement())
.Build();
services.AddSingleton<IAuthorizationHandler, MyRequirementHandler>();
services.AddAuthorization(options =>
{
// This line can be omitted if you don't need to be
// able to explicitly set the policy
options.AddPolicy("Unexpired", unexpiredPolicy);
// If no policy specified, use this
options.DefaultPolicy = unexpiredPolicy;
});
推荐阅读
- json - 终端进程以退出代码终止:1
- r - 如何计算r中具有相似列名的列的rowMeans?
- applescript-objc - 如何使用 Applescript 打开具有特定扩展名的文件
- asp.net-core - slugified url 上的模糊路线匹配
- c - OpenMP:While 循环内的 2 个嵌套 For 循环。如何修复多线程功能?(雅可比求解器)
- oracle - 想要将行转换为列
- python - 多个索引与python中的for循环匹配
- r - 数据框的总和列
- bash - 用于启动客户端和服务器开发环境的 Bash 脚本
- html - 调整窗口大小时如何反转div的堆叠方式?