private static MembershipUser GetUser(string keyEncoded) { var guid = UrlGuidHelper.GetGuid(keyEncoded); var user = Membership.GetUser(guid); return(user); }
private void SendAccountEmail(string username, string email, Guid key) { string keyEncoded = UrlGuidHelper.GetUrlString(key); var link = String.Format("http://{0}/activate/{1}", Request.ServerVariables["SERVER_NAME"], keyEncoded); var replacements = new Dictionary <string, string>(); replacements.Add("LINK", link); replacements.Add("USERNAME", username); var template = TemplateBuilder.LoadTemplate(NotificationType.Activate, replacements); template.To.Add(email); EmailHelper.SendEmail(template); }
public ActionResult SetUpAccountPost(string keyEncoded, BetaActivate m) { if (ModelState.IsValid) { var activationKey = UrlGuidHelper.GetGuid(keyEncoded); // using EF directly, as this is only temporary using (var ctx = new OpenGrooves.Data.OpenGroovesEntities()) { var usernameExists = ctx.Users.Where(u => u.UserName == m.Username && u.UserId != activationKey).Any(); if (usernameExists) { ModelState.AddModelError("UsernameExists", "The username you have chosen is taken. Please choose another."); return(View("BetaUsers", m)); } var user = ctx.Users.SingleOrDefault(u => u.UserId == activationKey); user.UserName = m.Username; user.LoweredUserName = m.Username.ToLower(); user.SetupRequired = false; ctx.SaveChanges(); } var newPass = m.NewPassword; var newUser = Membership.GetUser(activationKey); if (!newPass.IsNullOrWhiteSpace()) { var tempPass = newUser.ResetPassword(); var changed = newUser.ChangePassword(tempPass, newPass); newUser.IsApproved = true; Membership.UpdateUser(newUser); SendBetaWelcomeEmail(newUser.UserName, newUser.Email, newPass); FormsAuthentication.SetAuthCookie(newUser.UserName, true); } return(View("Index", (object)newUser.UserName)); } return(View("BetaUsers", m)); }