Я все еще не понимаю, что такое Identity.
Сначала меня все еще смущает разница между ролями, политиками / претензиями. Из того, что я прочитал, роли - это старый способ работы, который был сохранен для обратной совместимости, значит ли это, что AspNetRoleClaims является частью этой обратной совместимости?
Я думаю, что понимаю Заявления и Политики, когда думаю о них индивидуально, например, политика - это, по сути, набор правил, которые должны пройти, и дает возможность изменять правила без необходимости прохождения всего кода и смены ролей.
Если заявлено, то это, по сути, надежный источник, который ручается за этого пользователя (т. Е. Это его возраст, который может быть получен из государственного источника).
Меня смущает то, что я собираю все это вместе.
Я создал таблицы идентичности и вижу
AspNetUsers
AspNetUserRoles
AspNetRoles
AspNetRoleClaims
AspNetUserClaims
AspNetUserLogins
Я понимаю, что делает таблица AspNetUsers и AspNetUserLogins (кажется, если они используют как внешние провайдеры входа в систему).
Я не понимаю, в чем разница между AspNetRoleClaims и AspNetUserClaims. Я просто использую AspNetUserClaims или все?
Скажем, у меня есть этот сценарий
У меня есть компания, у которой много отделений, в каждом отделении они будут администраторами этого отделения, они получили полную власть над отделением и могут делать все, что угодно, но ничего в другом отделении. На уровне компании будет администратор, который сможет делать все, что угодно, на уровне компании и любого филиала. Наконец, у меня есть человек в филиале, который может просто добавлять новых сотрудников.
Как все это выглядит? Я делаю 3 роли?
CompanyAdmin
BranchAdmin
AddUsersAtBranchLevel (or is this some sort of claim??)
What do the tables look like? Is there anything going to be in AspNetRoleClaims? AspNetUserClaims?
Теперь я могу создать политику, чтобы проверить, является ли пользователь администратором ветки и пытается ли он редактировать свою ветку?
Или я просто забываю о ролях и имею в AspNetUserClaims
User1 CanAddUserToBranch true
User1 CanDeleteUserBranch true
User1 CanAddUserToCompany true
Затем в моем коде создайте все эти разные «ClaimTypes» и создайте политику, которая видит, сказали ли они «CanAddUserToBranch», а затем другое утверждение или политику, чтобы проверить, в какой ветке они находятся, чтобы убедиться, что они пытаются добавить что-то в нужную ветку. ?
Редактировать
Как вы думаете, мне нужно использовать авторизацию на основе ресурсов?
AspNetUserClaims
. Выбирайте то, что лучше всего решает проблему! (пожалуйста, поделитесь ссылками, потому что я не слышал рекомендаций о том, что роли не должны использоваться.) - person galdin   schedule 11.01.2019AddDefaultIdentity()
, который использует IdentityCore, а не все это. - person galdin   schedule 24.01.2019