public static void IsFailure(IdentityResult result, IdentityError error) { Assert.NotNull(result); Assert.False(result.Succeeded); Assert.Equal(error.Description, result.Errors.First().Description); Assert.Equal(error.Code, result.Errors.First().Code); }
public async Task<IActionResult> Register(RegisterViewModel model) { EnsureDatabaseCreated(_applicationDbContext); if (ModelState.IsValid) { if (!_gestionDeUsuario.ComprobarCorreo(model.Email)) { IdentityError NoUc3m = new IdentityError(); NoUc3m.Description = "Este correo no pertenece a la universidad Carlos III de Madrid. Por favor, utiliza tu correo proporcionado por la Universidad."; NoUc3m.Code = "778899"; IdentityResult res = IdentityResult.Failed(NoUc3m); AddErrors(res); return View(model); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { // Envío de correo para verificar cuenta var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var url = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Context.Request.Scheme); await _gestionDeUsuario.EnviarCorreoDeVerificacion(user.UserName,url); //Creamos el usuario en Nuestra Tabla de Usuarios int idUsuario = _gestionDeUsuario.CrearUsuario(user.UserName, model.Nombre, model.Apellidos); //Agregar usuario a Rol "usuario" string mensaje; bool agregadoARol = _gestionDeUsuario.AgregarUsuarioARol("Usuario", user.UserName, out mensaje); //Todo Usuario pertenece a Rol Usuario if (!agregadoARol) throw new Exception(mensaje); //Iniciamos sesión para ese usuario await _signInManager.SignInAsync(user, isPersistent: false); return RedirectToAction(nameof(HomeController.Index), "Home"); } AddErrors(result); } // Si llegamos hasta aquí algo ha ido mal y volvemos al formulario return View(model); }