使用ASp.net核心从appsettings.json获取Json数组

时间:2018-11-14 11:28:30

标签: asp.net arrays json asp.net-core asp.net-core-mvc

我在这里要从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数据(之前允许) 通过应用设置

0 个答案:

没有答案