i want to add user role to claims
var claims = new[]
{
new Claim("Email", model.Email),
new Claim(ClaimTypes.NameIdentifier, user.Id),
new Claim(ClaimTypes.Role, _userManger.GetRolesAsync(user).ToString())
};
but this method doesn`t work. how can I get role name as string?
Something like this might work for you,
var roles = await _userMgr.GetRolesAsync(user);
var claims = new List<Claim>();
claims.Add(new Claim("Email", model.Email));
claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Id));
foreach (var role in roles)
{
claims.Add(new Claim(ClaimTypes.Role, role));
}
GetRolesAsync(user) returns a List of role names (strings) there may be more than 1.