该想法是允许在appsettings(asp.net.core)中配置身份验证值,并使用授权属性,以便控制器可以进行自动身份验证,并且可以从appsettings中对其进行配置。
肮脏的方法是使用静态变量,但我认为还有一种更好的方法,因为我对框架缺乏了解,因此无法获得。
[AuthorizeAttribute("some value from appsettings")]
class Controller : ApiController
答案 0 :(得分:3)
您将无法动态设置属性的设置值。
我建议您应该获得基于策略的授权,例如
services.AddAuthorization(options =>
{
options.AddPolicy("Policy1", policy =>
policy.RequireClaim("YourRoleName"));
});
在上面的代码中,您可以轻松地从应用设置中替换“ YourRoleName”。
在操作中,您可以按照以下方式配置策略。
[Authorize(Policy = "Policy1")]
要了解有关授权政策的更多信息,可以选中Policy-based authorization in ASP.NET Core