в моем текущем веб-приложении я аутентифицирую пользователя с утверждением «customRole» (плюс его значение) и использую атрибут «Авторизовать», чтобы разрешить / запретить доступ к действиям. Все работает хорошо до тех пор, пока пользователь не получит более одного утверждения одного и того же типа, в доступе все время будет отказано, и при отладке я заметил, что для типа "customRole" было создано только одно утверждение, и его значение изменилось на объединенную строку с оба значения.
Я ожидал двух утверждений одного типа, но каждое из которых имело разные значения. Я использую AS PNET .Core 3.0 с IdentityServer4, но из того, что написано здесь , IdentityServer4 не проблема.
Например, я добавляю претензии, как так далее сторона IdentityServer:
uClaims.Add(new Claim("customRole", "superadmin"));
uClaims.Add(new Claim("customRole", "simpleadmin"));
Но когда я попадаю в клиентское приложение, я получаю утверждение примерно так:
customRole = ["superadmin","simpleadmin"]
Это ломает все логики c за атрибутом для ролей что я использую в действиях для клиентского приложения:
[Authorize(Roles = "superadmin")]
Я попытался следовать тому, что обсуждалось в предыдущей ссылке ( здесь ), но проблема не устранена.
Что-то пропущено, поэтому заявки разделяются, а не объединяются с разными значениями? или использовать авторизацию другим способом, который допускает массив значений?
Следует также упомянуть, что я начал работать с Asp .NetCore, IdentityServer4 и Roles впервые за последний месяц. м в кривой обучения.
Спасибо за ваше время, ура