Разрешить пользователю доступ только к своему собственному ресурсу с идентификатором в Authorize[] middleare .Net Core Api

Я использую аутентификацию на основе ролей в .Net Core 3.1 Api. Я использую токены Jwt и претензии пользователей. Аутентификация на основе ролей работает нормально. Но в некоторых контроллерах я хочу убедиться, что пользователь получает свои собственные данные. Потому что, если сотрудник отправляет другой идентификатор сотрудника в запросе, он / она может получить данные этого ресурса, я этого не хочу.

У меня есть электронная почта, идентификатор и роли в токене с некоторыми другими данными.

Я хочу, чтобы что-то вроде [Authorize(Roles=Employee, Id={userId})]

[HttpGet("getUserInventory")]
    //[Authorize(Roles="Employee", Claims.Id={userId})]
    public IActionResult getUserInventory([FromQuery] int userId)
    {
        var inventories = _userInventoryExportService.GetGlobalInventory(userId);
        if(inventories.Success)
        {
            return Ok(inventories.Data);
        }
        return BadRequest(inventories.Message);
    }

person Emre    schedule 23.06.2021    source источник
comment
Привет @Emre, вы рассматривали возможность использования аутентификации на основе политик, такой как этот?   -  person Rena    schedule 24.06.2021


Ответы (1)