public async Task <ActionResult> ActivateUser(string token) { if (string.IsNullOrWhiteSpace(token)) { return(RedirectToHome()); } var userConfirmationToken = urlSafeSecureDataSerializer .Deserialize <UserConfirmationToken>(token); if (await membershipService.Activate( userConfirmationToken.Email, userConfirmationToken.Token)) { await newUserConfirmedHandler.Handle(userConfirmationToken.Email); Flash[FlashMessageType.Success] = "Your account is now " + "successfully verified."; } else { Flash[FlashMessageType.Error] = "Invalid confirmation " + "token, you may have miss typed the token or the " + "token has expired."; } return(RedirectToHome()); }
public async Task <HttpResponseMessage> Post(CreateUser model) { if (!ModelState.IsValid) { return(Request.CreateErrorResponse( HttpStatusCode.BadRequest, ModelState)); } var email = model.Email.ToLower(CultureInfo.CurrentCulture); var requiresActivation = !IsDebuggingEnabled; try { var token = await membershipService.Signup( email, model.Password, UserRoles.User, requiresActivation); if (requiresActivation) { var userConfirmationToken = new UserConfirmationToken { Email = email, Token = token }; var securedToken = urlSafeSecureDataSerializer.Serialize( userConfirmationToken); await mailer.UserConfirmationAsync(email, securedToken); } else { await newUserConfirmedHandler.Handle(email); } return(Request.CreateResponse(HttpStatusCode.NoContent)); } catch (IdentityException e) { ModelState.AddModelError(string.Empty, e); return(Request.CreateErrorResponse( HttpStatusCode.BadRequest, ModelState)); } }