Я разработал остальные API, используя .Net Core, и мой API используется двумя источниками, один из пользовательского интерфейса, а другой из служб.
Для авторизации пользовательского интерфейса я использовал подход JWToken с заявками, а в качестве сервисов я использовал встроенную авторизацию безопасности на основе ролей.
т. Е. Для пользовательского интерфейса мне нужно предоставить [Authorize (Policy = "XYZ")]
где, что касается услуг, мне нужно предоставить [Authorize (Role = "ABC")]
Большинство моих API-интерфейсов используются либо пользовательским интерфейсом, либо сервисами специально, но есть немного API-интерфейсов, которые могут использоваться как пользовательским интерфейсом, так и сервисами, но для таких API-интерфейсов мне необходимо предоставить условие, подобное либо роли, либо политике спички,
Например, Authorize [Role = "ABC", Policy = "XYZ"] , но этот оператор предполагает, что и роль, и политика будут доступны с условием AND, но мне нужно решение для реализации то же самое с видом ИЛИ условия. Пожалуйста, помогите мне, если кто-нибудь сталкивался с этим типом сценария.
К вашему сведению, я пытался использовать пользовательские атрибуты, но это не сработало, потому что у меня есть пользовательские атрибуты, независимо созданные для ролей (с помощью AuthorizeAttribute) и для политик (с использованием TypeFilterAttribute и IAsyncAuthorizationFilter) , но опять же я не могу комбинировать то же самое с условием ИЛИ