У меня есть универсальный контроллер, который имеет атрибут Authorize, но его метод Get может быть доступен любому:
[Route("api/[controller]")]
[ApiController]
[Authorize("Bearer")]
public class BaseController<T> : ControllerBase where T : BaseModel
{
...
// GET: api/Base/5
[HttpGet("{id}")]
[AllowAnonymous]
public virtual async Task<ActionResult<T>> Get(Guid id)
{
var item = await items.FirstOrDefaultAsync(i => i.Id == id && i.IsActive());
if (item == null)
return NotFound();
return item;
}
...
}
И контроллер, который наследует вышеуказанный контроллер.Но на этом контроллере метод Get должен иметь контролируемый доступ.
public class InheritController : BaseController<Item>
{
...
[Authorize("Bearer")]
public override async Task<ActionResult<Item>> Get(Guid id)
{
return await base.Get(id);
}
...
}
Вышеуказанный подход не работает должным образом.При попытке авторизованного запроса ответ возвращается корректно.Но когда я пытаюсь выполнить неавторизованный запрос, я получаю ошибку 500 вместо 401.
Кто-нибудь может мне помочь, пожалуйста?