有没有一种从 appsettings.json 获取属性并在 class 属性中使用它们的简洁方法?

Is there a clean way to get attributes from appsettings.json, and use them inside a class attribute?

想法是允许在 appsettings (asp.net.core) 中配置身份验证值,并使用授权属性以便控制器获得自动身份验证并且可以从 appsettings 进行配置。

肮脏的方法是使用静态变量,但我相信有更好的方法,但由于我对框架缺乏了解,所以我没有得到。

[AuthorizeAttribute("some value from appsettings")]
class Controller : ApiController

您将无法为您的属性动态设置应用程序设置值。

我建议你应该像

这样的基于策略的授权
services.AddAuthorization(options =>
    {
        options.AddPolicy("Policy1", policy =>
            policy.RequireClaim("YourRoleName"));
    });

在上面的代码中,您可以轻松地从应用程序设置中替换 "YourRoleName"。

在您的操作中,您可以像下面这样配置策略。

 [Authorize(Policy = "Policy1")]

要了解有关授权政策的更多信息,您可以查看 Policy-based authorization in ASP.NET Core