public async Task <ActionResult> Register(RegisterViewModel model, string returnUrl) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, CreateDate = DateTime.Now, FirstName = model.FirstName, LastName = model.LastName }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { UserManager.AddToRole(user.Id, "User"); if (!String.IsNullOrWhiteSpace(Request.QueryString.Get("i"))) { BLLUsers.AutoConfirmUser(user.Id); var invit = Guid.Parse(Request.QueryString.Get("i")); var invitObj = BLLInvitations.GetInvitation(invit); BLLConflicts.AddUserInConflictFromInvitation(user.Email, invit, user.Id); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); OpenFireConnector.Connector connector = new OpenFireConnector.Connector("http://openfire-444e60hk.cloudapp.net:9090/", "admin", "SF211084agantio"); connector.CreateUser(new OpenFireConnector.user() { password = user.Email, username = user.FirstName.Replace(" ", ".").ToLower() + "." + user.LastName.Replace(" ", ".").ToLower(), email = user.Email }); return(RedirectToAction("Identification", "Conflict", new { conflictId = invitObj.IdConflict, idUser = user.Id })); } else { BLLUsers.AutoConfirmUser(user.Id); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); if (!String.IsNullOrWhiteSpace(returnUrl)) { return(Redirect(returnUrl)); } else { return(RedirectToAction("Index", "Home")); } // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // Guid guid = Guid.NewGuid(); // FastArbitreEmails.ConfirmAccount(model.Email, model.FirstName + " " + model.LastName, callbackUrl, Request.UrlReferrer.DnsSafeHost + Url.Action("Index", "Email", new { id = guid.ToString() }), guid); //// await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); // return View("ShouldConfirmEmail"); } // Send an email with this link } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } // find user by username first var user = UserManager.FindByEmail(model.Email); if (user == null) { ModelState.AddModelError("", "Nom d'utilisateur ou mot de passe erroné, veuillez ressayer."); return(View(model)); } if (await UserManager.IsLockedOutAsync(user.Id)) { ModelState.AddModelError("", string.Format("Quelqu'un a tenté de se connecter à votre compte sans succès. Afin d'empêcher les personnes malveillantes de trouver votre mot de passe en testant un maximum de combinaison (technique dite 'bruteforce'), votre compte est maintenant bloqué pour {0} minutes.", ConfigurationManager.AppSettings["DefaultAccountLockoutTimeSpan"].ToString())); return(View(model)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : true); switch (result) { case SignInStatus.Success: if (returnUrl != null) { if ((returnUrl.Contains("userId") || returnUrl.Contains("?i="))) { returnUrl = returnUrl.Replace("userId", user.Id); var invitation = HttpUtility.ParseQueryString(returnUrl)[0]; BLLConflicts.AddUserInConflictFromInvitation(user.Email, Guid.Parse(invitation), user.Id); } return(Redirect(returnUrl)); } return(RedirectToAction("Profil")); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "Nom d'utilisateur ou mot de passe erroné, veuillez ressayer."); return(View(model)); } }