Проверка подлинности сложных утверждений ASP.net Core Identity Complex - PullRequest
0 голосов
/ 01 декабря 2018

Мне необходимо создать среду аутентификации и авторизации для моего приложения ASP.NET CORE MVC Identity 2.1 с бэкэндом API и IdentityServer4 в качестве сервера авторизации).

  1. У меня есть администраторы
  2. У меня есть проекты.
  3. Каждый пользователь должен быть хотя бы в одном проекте, кроме администраторов.

Я хотел бы дать пользователям утверждение типа «Роль» и сохранить в нем что-то вроде «admin» / «user».

Теперь все становится сложнее.

В каждом проекте пользователи имеют разные роли, под-роли и еще раз под-роли под-ролей (так, три уровня).

В настоящее время я решил проблему с помощью действияфильтры и записать их перед каждым контроллером / методом (где я вижу их подходят).Я также создал таблицы для этих трех уровней, чтобы я мог хранить данные о том, какой пользователь находится на каком уровне (и, конечно, у них разные права доступа в зависимости от этого).

Я также хочу, чтобы у пользователя была возможность иметьнесколько проектов открываются одновременно (в разных вкладках браузера), чтобы они могли переключаться между ними по своему усмотрению.В настоящее время я решил эту проблему, отправляя идентификатор проекта при каждом запросе в URI.

Я думал об использовании утверждений вместо текущего решения для фильтрации действий.Я много читал об этом и смотрел видео виртуальной академии Microsoft по этой теме.Но я не понимаю, как я мог использовать это в этом сценарии.Должен ли я предъявлять требования к заявкам и копировать код из своих фильтров действий в них, потому что удостоверение утверждений не может обработать мой случай по умолчанию?

Я делаю это совершенно неправильно?

...