Aller au contenu principal

20-5 Base Identity et création de compte

Tout comme Identity offre une fonction SignInAsync via le SignInManager pour identifier un utilisateur, un objet UserManager permet pour sa part de créer un utilisateur.

  1. Ajoutez à votre contrôleur ComptesController les classes UserManager et SignInManager pour que ces dernières soient injectées via le mécanisme d'injection de dépendance.

    Snowfall.Web.Mvc/Controllers/ComptesController.cs
    public class ComptesController : Controller
    {
    private readonly UserManager<ApplicationUser> _userManager;
    private readonly SignInManager<ApplicationUser> _signInManager;

    public ComptesController(
    UserManager<ApplicationUser> userManager,
    SignInManager<ApplicationUser> signInManager)
    {
    _userManager = userManager;
    _signInManager = signInManager;
    }
  2. Créez un ApplicationUser à partir du ViewModel reçu, si le ViewModel est valide. Au niveau précédent, vous avez implémenté une vérification pour les validations (ModelState.IsValid), assurez-vous de faire la création du ApplicationUser si le modèle est valide.

    info

    Vous pouvez remplacer le return Content($@"...)

    Snowfall.Web.Mvc/Controllers/ComptesController.cs
    public async Task<IActionResult> Create(CreerCompteViewModel creerCompteViewModel)
    {
    if (ModelState.IsValid)
    {
    var user = new ApplicationUser
    {
    UserName = creerCompteViewModel.Email,
    Email = creerCompteViewModel.Email,
    Prenom = creerCompteViewModel.Prenom,
    Nom = creerCompteViewModel.Nom
    };
    }

    return View("New", creerCompteViewModel);
    }