В чем разница между утверждениями об авторизации и параметрами запроса в asp.net?

В чем разница между использованием утверждения или роли авторизации и использованием параметра, скажем, GET?

Например, я хочу, чтобы пользователь имел доступ только к своим данным:

У меня может быть контроллер с двумя функциями GET:

Сначала с использованием параметра:

И согласно этот ответ с использованием утверждения:

Я мог бы ответить на этот вопрос сам, спросив: Единственная разница в том, что одно (утверждение) codeируется в токен JWT, а другой (параметр) доступен для чтения всем, кто наблюдает за трафиком?

[HttpGet]
[Authorize]
public async Task<ActionResult<IEnumerable<DataDTO>>> GetData(long userId)
{
    return _context.Data.Select(data => CreateDataDTO(data)).ToListAsync();
}
[HttpGet]
[Authorize]
public async Task<ActionResult<IEnumerable<DataDTO>>> GetData()
{
    //[...]
    var user = (System.Security.Claims.ClaimsIdentity)User.Identity;
    var userId = user.FindFirstValue("UserId");

    return _context.Data.Select(data => CreateDataDTO(data)).ToListAsync();
}
Валерий
Вопрос задан21 января 2024 г.

1 Ответ

2
Зинаида
Ответ получен4 сентября 2024 г.

Ваш ответ

Загрузить файл.