public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext) { HttpRequestBase request = context.ControllerContext.HttpContext.Request; Controller controller = (Controller)context.ControllerContext.Controller; string username = request.Params["UserName"]; string token = request.Params["token"]; if (!ValidateMemberPasswordToken(username, token)) { context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "The password token is invalid.".Localize()); return(null); } AntiForgery.Validate(); var newPassword = request.Form["newpassword"]; var confirmPassword = request.Form["confirmPassword"]; if (newPassword != confirmPassword) { context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "The passwords do not match.".RawLabel().ToString()); return(null); } try { var httpContext = context.ControllerContext.HttpContext; var repository = Repository.Current; var textFolder = new TextFolder(repository, "Members"); var content = textFolder.CreateQuery().WhereEquals("UserName", username).FirstOrDefault(); var passwordSalt = ""; if (content["PasswordSalt"] == null) { passwordSalt = MemberAuth.GenerateSalt(); } else { passwordSalt = content["PasswordSalt"].ToString(); } newPassword = MemberAuth.EncryptPassword(newPassword, passwordSalt); ServiceFactory.TextContentManager.Update(textFolder, content.UUID, new string[] { "Password", "ForgotPWToken", "PasswordSalt" }, new object[] { newPassword, "", passwordSalt }); context.ControllerContext.Controller.ViewBag.Message = "The password has been changed.".Label(); MemberAuth.SetAuthCookie(username, false); return(new RedirectResult(context.Url.FrontUrl().PageUrl("Dashboard").ToString())); } catch (Exception e) { context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e.Message); Kooboo.HealthMonitoring.Log.LogException(e); } return(null); }
public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext) { AntiForgery.Validate(); try { var httpContext = context.ControllerContext.HttpContext; var repository = Repository.Current; var textFolder = new TextFolder(repository, "Members"); string username = httpContext.Request.Form["username"]; string password = httpContext.Request.Form["password"]; var member = textFolder.CreateQuery().WhereEquals("UserName", username).FirstOrDefault(); if (member != null) { var encryptedPassword = password; if (member["PasswordSalt"] != null) { var passwordSalt = member["PasswordSalt"].ToString(); encryptedPassword = MemberAuth.EncryptPassword(password, passwordSalt); } if (encryptedPassword == member["Password"].ToString()) { var rememberme = httpContext.Request.Form["rememberMe"].Contains("true"); var returnUrl = httpContext.Request.QueryString["returnUrl"]; if (string.IsNullOrEmpty(returnUrl)) { returnUrl = context.Url.FrontUrl().PageUrl("Dashboard").ToString(); } MemberAuth.SetAuthCookie(username, rememberme); return(new RedirectResult(returnUrl)); } } context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "Username or password is invalid".RawLabel().ToString()); return(null); } catch (Exception e) { context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e); Kooboo.HealthMonitoring.Log.LogException(e); } return(null); }
public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext) { AntiForgery.Validate(); try { var httpContext = context.ControllerContext.HttpContext; var repository = Repository.Current; var textFolder = new TextFolder(repository, "Members"); var values = new NameValueCollection(httpContext.Request.Form); values["Published"] = true.ToString(); var member = textFolder.CreateQuery().WhereEquals("UserName", values["username"]).FirstOrDefault(); if (member != null) { context.ControllerContext.Controller.ViewData.ModelState.AddModelError("UserName", "The user already exists.".RawLabel().ToString()); } else { values["PasswordSalt"] = MemberAuth.GenerateSalt(); values["Password"] = MemberAuth.EncryptPassword(values["Password"], values["PasswordSalt"]); var textContext = ServiceFactory.TextContentManager.Add(repository, textFolder, null, null, values, httpContext.Request.Files, null, httpContext.User.Identity.Name); MemberAuth.SetAuthCookie(textContext["UserName"].ToString(), false); return(new RedirectResult(context.Url.FrontUrl().PageUrl("Dashboard").ToString())); } } catch (Exception e) { context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e); Kooboo.HealthMonitoring.Log.LogException(e); } return(null); }