Здесь я собираюсь получить json Array от Appsettings.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.
Проблема в том, когда я вошел в систему как обычный пользователь.Разрешенные меню идут правильно.После этого, когда я вошел в систему как администратор.То же самое разрешенное меню идет.здесь я получаю некоторые данные json (которые разрешены ранее) из настроек приложения