ASP.NET核心使用来自appsettings的AD组授权角色

时间:2017-09-18 16:06:42

标签: c# asp.net asp.net-identity

看起来它应该非常简单,就像在我的控制器上一样:

[Authorize(Roles = "domain\\ad_group")]
public class MyController : Controller

但是我想指定" domain \ ad_group"从appsettings,而不是硬编码。 我意识到“适当的”#39;解决方案是使用例如。 EF角色/政策等,但这是一个非常小的应用程序,所以我正在寻找更轻量级的东西。

我可以通过简单的方式从appsetting中获取AD组吗?

1 个答案:

答案 0 :(得分:6)

尝试以下属性: [Authorize(Policy = "MyPolicyName")]

ConfigureServices方法中,执行以下两个步骤:
1。从appsettings.json文件中读取所需角色(AD组)。
2。使用RequireRole方法将该角色添加到此策略。

步骤1的代码:

Configuration.GetSection("NameOfSectionInAppSettings").Bind(ObjectTheSectionIsMappedTo);

第2步的代码:

services.AddAuthorization(options =>
{ options.AddPolicy("MyPolicyName", policy => policy.RequireRole(ObjectTheSectionIsMappedTo.AdGroupProperty)); });

这适用于我开发的一个小应用程序:)