有没有一种从 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
想法是允许在 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