После создания нового веб-приложения (MVC) с индивидуальными учетными записями пользователей (VS2017) вы найдете такие таблицы, как AspNetRoles, AspNetRoleClaims, AspNetUserRoles, AspNetUserClaims как часть ядра Entity Framework IdentityContext.
В AccountController введен UserManager, но нет методов для обслуживания ролей и утверждений. Представления (страницы), контроллеры и модели не поставляются для управления отношениями из коробки.
Хорошая новость заключается в том, что UserManager обладает всевозможными функциями для добавления заявок и ролей пользователям. AddClaimAsync, AddToRoleAsync, GetClaimsAsync, GetRolesAsync, GetUsersForClaimAsync, GetUsersInRoleAsync, RemoveClaimAsync, RemoveFromRoleAsync и версии, которые обрабатывают заявки / роли как IEnumerable.
Краткосрочное решение: не должно быть сложной задачей добавить методы в AccountController или ManageController или даже создать RolesController для поддержки страниц, которые управляют этими отношениями.
Долгосрочное решение: узнайте, как добавлять шаблоны для создания этих элементов при создании нового проекта MVC Identity. Затем похвастайтесь, обнародовав его в GitHub :) Или напишите статью о том, что вы узнали для других людей в вашей ситуации.
Postscript: Создав небольшое промежуточное ПО, которое вы поместили в путь обработки запросов, вы можете загрузить роли / утверждения для текущего пользователя, на которые может ссылаться остальная часть обработки запросов. Таблица соединения между проектами и ролями, возможно, с ролями чтения и роли записи, позволяет сравнивать роли, требуемые с ролями / утверждениями пользователя.
Техника: Здесь - потрясающее объяснение пользовательских политик и авторизации. В вашем случае политика проверит, соответствует ли пользователь роли / заявке, соответствующей вашему проекту. Ваши роли выше - «Прочитать проект», «Написать проект». Если ни того, ни другого нет доступа.