Предполагается, что у меня есть следующие настройки:
Роли: [Role1, Role2]
RoleClaims: [{Role1, ClaimType1, ClaimValue1}, {Role2, ClaimType1, ClaimValue1}]
В основном есть две роли, и обе роли имеют требование роли ClaimType1 = ClaimValue1
Тогда у меня есть пользователь, которому назначены обе роли. Если я посмотрю на личность утверждений этого пользователя, то увижу
[
ClaimType1 = ClaimValue1
ClaimType1 = ClaimValue1
]
Я думаю, что за сценой asp. net идентичность просто вызывает SignInManager.CreateUserPrincipalAsync
, который перебирает все роли и добавляет все заявки вернулся с RoleManager.GetClaimsAsync
.
Какой самый простой способ игнорировать дублирующиеся заявки (с одинаковым типом + значение) во время создания принципала пользователя или сразу после его создания?