public async Task <ActionResult> CreateUser([Bind("Email,Name,Surname,Password,IsAdmin")] AdminCreateUserViewModel user) { if (ModelState.IsValid) { try { var dbUser = dbContext.Users.FirstOrDefault(u => u.Email == user.Email); if (dbUser == null) { var userCreation = await Helpers.CreateUser(user.Email, user.Name, user.Surname, user.Password, userManager); if (((IdentityResult)userCreation["Result"]).Succeeded) { User newUser = (User)userCreation["User"]; IdentityResult identityResult = await userManager.AddToRoleAsync(newUser, RolesRegistry.Normal); if (user.IsAdmin) { identityResult = await userManager.AddToRoleAsync(newUser, RolesRegistry.Admin); } } TempData["Message"] = "Yeni kullanıcı başırılı bir şekilde oluştutuldu."; return(RedirectToAction(nameof(Index))); } ViewData["Error"] = "Bu eposta kullanılmaktadır."; } catch { ViewData["Error"] = "Kullanıcı oluşturulamadı."; } } return(View(user)); }
public ActionResult Create() { var viewModel = new AdminCreateUserViewModel { Uloge = db.Roles.ToList() }; return(View(viewModel)); }
public async Task <ActionResult> Create(AdminCreateUserViewModel model) { //用ModelState.IsValid属性检查所接收到的数据是否包含了我所需要的数据, //如果是,便创建一个AppUser类的新实例,并将它传递给UserManager.CreateAsync方法 //使用异步的Identity方法让你的动作方法能够异步执行,这可以从整体上改善应用程序。 if (ModelState.IsValid) { ApplicationUser user = new ApplicationUser { UserName = model.Name, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { return(RedirectToAction("Index")); } else { AddErrorsFromResult(result); } } return(View(model)); }
public ActionResult Create(AdminCreateUserViewModel viewModel) { if (ModelState.IsValid) { var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>(); var user = new ApplicationUser { Email = viewModel.Register.Email, UserName = viewModel.Register.Email }; var result = userManager.Create(user, viewModel.Register.Password); if (result.Succeeded) { var role = db.Roles.SingleOrDefault(r => r.Id == viewModel.UlogaId).Name; userManager.AddToRole(user.Id, role); return(RedirectToAction("Index", "Korisnici")); } } return(View(viewModel)); }
public ActionResult CreateNewUser(AdminCreateUserViewModel newuser) { admin.CreateUser(newuser); return(View()); }
public virtual async Task <Response> Create(AdminCreateUserViewModel model) { try { ApplicationUser user = new ApplicationUser { UserName = model.Username, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DisplayName = model.DisplayName, PhoneNumber = model.Phone, JobTitle = model.JobTitle, Anonymous = model.Anonymous, CreatedOn = DateTime.UtcNow, LastLogOn = DateTime.UtcNow, LastLoginLocation = HttpContext.Connection.RemoteIpAddress.ToString(), LastLoginIP = HttpContext.Connection.RemoteIpAddress.ToString() }; user.AddUserNote(new UserNote() { CreatedBy = User.GetLocalUserId(), CreatedOn = DateTime.UtcNow, Note = $"User created via admin panel by {User.Identity.Name}." }); IdentityResult result = await _account.CreateAsync(user, model.Password); if (!result.Succeeded) { return(new Response(result.Errors)); } if (model.CreateValidated) { user.EmailConfirmed = true; user.Active = true; await _account.UpdateUserAsync(user); } else { if (!Engine.Settings.Account.RequireEmailConfirmation) { user.EmailConfirmed = true; } } if (model.NotifyUser) { // Send the email to the user, letting em know n' shit. // Create the email content try { MailObject message = new MailObject() { To = new SendGrid.Helpers.Mail.EmailAddress(user.Email), PreHeader = "You access information for " + Engine.Settings.Basic.FullTitle, Subject = "You account has been created." }; message.AddH1("Account Created!"); message.AddParagraph("Your new account has been set up on the " + Engine.Settings.Basic.FullTitle + " website."); message.AddParagraph("Name: <strong>" + user.ToInternalName() + "</strong>"); message.AddParagraph("Username: <strong>" + model.Username + "</strong>"); message.AddParagraph("Password: <strong>" + model.Password + "</strong>"); message.AddCallToAction("Log in here", ControllerContext.HttpContext.GetSiteUrl() + "/account/login", "#32bc4e", "center"); await _emailSender.SendEmailAsync(message); } catch (Exception) { // roll back! ApplicationUser deleteUser = await _account.GetUserByEmailAsync(model.Email); await _account.DeleteUserAsync(deleteUser.Id, User); throw new Exception("There was a problem sending the email, ensure the site's email address and SendGrid settings are set up correctly before sending."); } } await _logService.AddLogAsync <BaseUsersController>($"A new user account has been created in the admin area for {user.Email}", type : LogType.Success); return(new Response(true, "Successfully created.")); } catch (Exception ex) { return(await ErrorResponseAsync <BaseUsersController>($"Error creating a user via the admin panel.", ex)); } }