internal static void DefaultUser(ApplicationDbContext ctx) { var userManager = new UserManager<User>(new UserStore<User>(ctx)); var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(ctx)); var adminUser = AppConfig.DefaultAdminAccount; var adminPassword = AppConfig.DefaultAdminAccountPassword; const string roleName = "Admin"; var role = roleManager.FindByName(roleName); if (role == null) { role = new IdentityRole(roleName); var createRoleResult = roleManager.Create(role); } var user = userManager.FindByName(adminUser); if (user == null) { user = new User { UserName = adminUser, Email = adminUser, LockoutEnabled = false, EmailConfirmed = true, UserProfile = new UserProfile() { Title = "N/A", Forename = "System", Surname = "Administrator", Alias = "Sysadmin", JobTitle = "Administrator" } }; var createUserResult = userManager.Create(user, adminPassword); createUserResult = userManager.SetLockoutEnabled(user.Id, false); } var rolesForUser = userManager.GetRoles(user.Id); if (!rolesForUser.Contains(role.Name)) { var addUserToRoleResult = userManager.AddToRole(user.Id, role.Name); } }
private async Task SignInAsync(User user, bool isPersistent) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie, DefaultAuthenticationTypes.TwoFactorCookie); AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = isPersistent }, await user.GenerateUserIdentityAsync(UserManager)); }
public async Task<ActionResult> CreateUser(CreateUser model, params string[] selectedRoles) { if (!Request.IsAjaxRequest()) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } if (!ModelState.IsValid) { return Json(new { success = false, type = 1, message = "Error! Model state is not valid." }, JsonRequestBehavior.AllowGet); } var user = new User { UserName = model.Email, Email = model.Email, UserProfile = new UserProfile() { Title = model.Title, Forename = model.Forename, Surname = model.Surname, Alias = model.Alias, JobTitle = model.JobTitle } }; var createUser = await UserManager.CreateAsync(user, model.Password); return Json(!createUser.Succeeded ? new { success = false, type = 1, message = "Error! " + createUser.Errors.FirstOrDefault() } : new { success = true, type = 3, message = "User created!" }, JsonRequestBehavior.AllowGet); }