Beispiel #1
0
 private void btnEditName_Click(object sender, EventArgs e)
 {
     EditName = new EditUserName(form.User);
     this.Controls.Add(EditName);
     EditName.BringToFront();
     EditName.Location = new Point(100, 158);
     EditName.BtnSaveClick(btnChangeNameClick);
 }
        public async Task <ActionResult> ChangeUserName(EditUserName model)
        {
            var IPAddress = Server.HtmlEncode(Request.UserHostAddress);

            ViewBag.IPAddress = IPAddress;
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            // let's find out if they've picked a username that already exists
            var check = await UserManager.FindByNameAsync(model.UserName);

            if (check != null)
            {
                ModelState.AddModelError(nameof(EditUserName.UserName), "That username is not available");
                return(View(model));
            }
            // now, find out if the password is correct
            var current = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            if (await UserManager.CheckPasswordAsync(current, model.CurrentPassword))
            {
                current.UserName = model.UserName;
                var result = await UserManager.UpdateAsync(current);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                StringBuilder sb = new StringBuilder();
                sb.Append("There were some problems:");
                sb.AppendLine();
                foreach (var e in result.Errors)
                {
                    sb.AppendLine(e);
                }
                ModelState.AddModelError("", sb.ToString());
                return(View(model));
            }
            ModelState.AddModelError(nameof(EditUserName.CurrentPassword), "Please try again.");
            return(View(model));
        }