Стек — это последняя версия .NET Core с C#.
Мы вставляем один и тот же код, проверяющий, пытается ли кто-то изменить свой собственный профиль (у нас есть их profileId
из JWT) почти в каждый контроллер:
if (User.GetProfileId() != profileId)
return Unauthorized();
Я немного не понимаю, как убрать эту избыточность. Я определенно могу добавить универсальное промежуточное ПО или filter для этого, но это кажется неуклюжим. Есть ли способ добавить атрибут [MustOwnProfile]
и запустить тест .NET Core в приведенном выше коде везде, где появляется атрибут?
Пример вышеуказанной проверки в контексте:
[HttpPost]
[Route("{profileId:int}/start-profile/{checklistId:int}")]
[Authorize]
public async Task<IActionResult> StartProfile(int profileId, int checklistId)
{
if (User.GetProfileId() != profileId)
return Unauthorized();
await _profileService.StartProfile(profileId, checklistId);
return Ok();
}