токен контроллера ядра .net исчезает после ожидания - PullRequest
2 голосов
/ 12 марта 2019

У меня есть приложение с авторизацией токена JWT. Маркер JWT содержит информацию о роли пользователя и дополнительную информацию о пользователе, которая хранится в Заявках.

После ожидание информация о токене пользователя исчезнет.

Это поведение по умолчанию? Как получить информацию о пользователе после ожидания? Да, есть простой обходной путь -> сохранить информацию в переменную до await , но мне это кажется странным.

Мой контроллер:

[Route("api/[controller]")]
[ApiController]
public class ProjectController : ControllerBase
{
    private readonly IProjectDomainService _projectDomainService;
    public ProjectController(IProjectDomainService projectDomainService)
    {
        _projectDomainService = projectDomainService;
    }

    [HttpPost("[action]")]
    [Authorize(Roles = "Admin")]
    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    public async void CreateProject([FromBody] ProjectDto project)
    {
        var claims = User.Claims; //contains 11 claims
        await Task.Delay(100);
        claims = User.Claims; // contains 0 claims
    }
}

Edit1: заменен вызов projectDomainService на Task.Delay (). То же самое поведение - заявки остаются после ожидания.

...