我们的想法是允许的AppSettings(asp.net.core)配置的认证值,并且使得控制器获取自动认证使用一个授权属性,它是从AppSettings的配置。
肮脏的方法是使用一个静态变量,但我相信有一个更好的办法,我没有,因为我没有对框架知识的获得。
[AuthorizeAttribute("some value from appsettings")]
class Controller : ApiController
您将无法动态设置appsetting值的属性。
我建议你应该去像基于策略的授权
services.AddAuthorization(options =>
{
options.AddPolicy("Policy1", policy =>
policy.RequireClaim("YourRoleName"));
});
在上面的代码,你可以从appsetting方便更换“YourRoleName”。
在你的行动,你可以配置像下面的策略。
[Authorize(Policy = "Policy1")]
要了解更多有关你可以检查Policy-based authorization in ASP.NET Core授权策略