Получить роли пользователя в методе GET - PullRequest
0 голосов
/ 31 марта 2020

Я использую API REST в. net Core 2.2, реализованный с помощью JwtToken и Angular 8 Приложения. Я пытаюсь заставить роль пользователя показать ее администратору и дать возможность редактировать эту роль пользователя, но роль не отображается

    [HttpGet]
    [Authorize]
    //GET: /api/UserProfile
    public async Task<Object> GetUserProfile()
    {
        string userId = User.Claims.First(c => c.Type == "UserId").Value;
        var user = await _userManager.FindByIdAsync(userId);
        var role = await _userManager.GetRolesAsync(user);
        return new
        {                
            user.Email,
            user.UserName,
            user.Role,
        };

    }

1 Ответ

0 голосов
/ 01 апреля 2020

Как вы знаете, у пользователя нет свойства role. Также у каждого пользователя есть много ролей. Если у вас всегда есть одна роль для каждого пользователя, выберите роль пользователя следующим образом:

    [HttpGet]
[Authorize]
//GET: /api/UserProfile
public async Task<Object> GetUserProfile()
{
    string userId = User.Claims.First(c => c.Type == "UserId").Value;
    var user = await _userManager.FindByIdAsync(userId);
    var role = await _userManager.GetRolesAsync(user);
    return new
    {                
        user.Email,
        user.UserName,
        role = role.FirstOrDefault() ,
    };

}
...