Как добавить роль по умолчанию при использовании IdentityCore при регистрации пользователя:
Мой AuthController и класс использования UserMenager и SignInManager, IConfiguration, я хочу добавить роль при регистрации пользователя. У меня есть 3 модели, отвечающие за пользователя и роли. У одного пользователя может быть много ролей, но здесь он предполагает, что у пользователя есть одна роль, например, у студента одна роль может иметь много пользователей.
[AllowAnonymous]
[Route("api/[controller]")]
[ApiController]
public class AuthController : ControllerBase
{
private readonly IConfiguration _config;
private readonly IMapper _mapper;
private readonly UserManager<User> _userManager;
private readonly SignInManager<User> _signInManager;
public AuthController(IConfiguration config,
IMapper mapper,
UserManager<User> userManager,
SignInManager<User> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
_mapper = mapper;
_config = config;
}
[HttpPost("register")]
public async Task<IActionResult> Register(UserForRegisterDto userForRegisterDto)
{
var userToCreate = _mapper.Map<User>(userForRegisterDto);
var result = await _userManager.CreateAsync(userToCreate, userForRegisterDto.Password);
var userToReturn = _mapper.Map<UserForDetailedDto>(userToCreate);
if (result.Succeeded)
{
return CreatedAtRoute("GetUser",
new { controller = "Users", id = userToCreate.Id }, userToReturn);
}
return BadRequest(result.Errors);
}
Модель базы данных UserRole:
public class UserRole : IdentityUserRole<int>
{
public User User { get; set; }
public Role Role { get; set; }
}
Роли модели:
public class Role : IdentityRole<int>
{
public ICollection<UserRole> UserRoles { get; set; }
}
модель User
public class User : IdentityUser<int>
{ ...public ICollection<UserRole> UserRoles { get; set; }}