我在这里要从Appsettings.json获取json数组
"RestrictedFunctionality": {
"UserRoleId": 2,
"RestrictedMenu": [
{
"name": "menu1"
},
{
"name": "menu2"
},
{
"name": "More",
"subMenu": ["submenu1" ]
}
],
"AllMenu": [
{
"name": "menu1"
},
{
"name": "menu2"
},
{
"name": "menu3"
},
{
"name": "menu4",
"subMenu": [ "submenu1", "submenu2", "submenu3", "submenu4"]
}
]
在这里,我将获得所有菜单和受限菜单。
var listOfRestrictedMenu = _restFunc.Value.RestrictedMenu;
var listOfallMenu = _restFunc.Value.AllMenu;
为了获得上面的列表,我正在使用配置。 我创建了课程
public class RestrictedFunctionality
{
public List<Menu> RestrictedMenu { get; set; }
public List<Menu> AllMenu { get; set; }
}
菜单是具有名称和子菜单的类
public class Menu
{
public string name { get; set; }
public List<string> subMenu { get; set; }
}
对于配置,我在启动时添加了以下代码
public void ConfigureServices(IServiceCollection services)
{
services.Configure<RestrictedFunctionality>(Configuration.GetSection("RestrictedFunctionality"));
services.AddMvc(options =>
{
options.Filters.Add(new CustomExceptionFilterAttribute());
options.Filters.Add(new CustomActionFilter());
});
services.AddSession();
services.AddHttpContextAccessor();
}
此处以管理员身份登录后,我必须获取AllMenus。当我以普通用户身份登录时。我必须获得菜单的受限列表。为此,我通过从RestrictedMenu中的AllMenu中删除菜单来创建允许菜单。
问题是当我以普通用户身份登录时。 allowedMenu正常出现。之后,当我以管理员身份登录时。同样的allowedMenu即将到来。在这里,我得到一些json数据(之前允许) 通过应用设置