有没有一种干净的方法来从appsettings.json获取属性,并在类属性中使用它们?

时间:2019-02-06 08:46:40

标签: c# asp.net-core appsettings

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

肮脏的方法是使用静态变量,但我认为还有一种更好的方法,因为我对框架缺乏了解,因此无法获得。

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

1 个答案:

答案 0 :(得分:3)

您将无法动态设置属性的设置值。

我建议您应该获得基于策略的授权,例如

services.AddAuthorization(options =>
    {
        options.AddPolicy("Policy1", policy =>
            policy.RequireClaim("YourRoleName"));
    });

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

在操作中,您可以按照以下方式配置策略。

 [Authorize(Policy = "Policy1")]

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