2 回答

TA贡献1866条经验 获得超5个赞
我认为您需要将AllowedToMigrate
值拆分为组件角色,而不仅仅是将其作为一个字符串提交。
你真正想要实现的是
services.AddAuthorization(options => options.AddPolicy("AllowedOnly", policy => policy.RequireRole("ADSecurityGroupOne", "ADSecurityGroupTwo")));
我不完全确定您将如何从单个配置设置中做到这一点 - 可能是通过创建一个新要求:
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-2.1

TA贡献1796条经验 获得超4个赞
回答我自己的问题,因为我发现我做错了什么:
如果角色不止一个,则必须以字符串数组的形式提供;如果只有一个,则必须以一个字符串的形式提供。我更新了 json 应用程序设置文件和我的 ApplicationSettings 类,以便 AllowedToMigrate 是一个字符串数组。
{
"ApplicationSettings": {
"AllowedToMigrate": [ "ADSecurityGroupOne", "ADSecurityGroupTwo" ]
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
我还修复了角色名称的拼写错误,这是最初的问题!所以这个故事的寓意是:绝对确保您使用正确拼写的角色名称,并在授权似乎无缘无故错误时始终尝试使用不同的角色。
- 2 回答
- 0 关注
- 245 浏览
添加回答
举报