public void PopulateRolesAndAdmin() { // Check to see if Role Exists, if not create it if (!_roleManager.RoleExists(SecurityConfig.AdminRole)) { _logger.Info($"Role {SecurityConfig.AdminRole} does not exist - adding to Roles"); var result = _roleManager.Create(new IdentityRole(SecurityConfig.AdminRole)); if (result.Succeeded == false) { throw new Exception($"RoleManager.Create (Admin) failed: {result.Errors.JoinByNewline()}"); } } if (!_roleManager.RoleExists(SecurityConfig.UserRole)) { _logger.Info($"Role {SecurityConfig.UserRole} does not exist - adding to Roles"); var result = _roleManager.Create(new IdentityRole(SecurityConfig.UserRole)); if (result.Succeeded == false) { throw new Exception($"RoleManager.Create (User) failed: {result.Errors.JoinByNewline()}"); } } var adminUser = _userManager.FindByName(SecurityConfig.DefaultAdminEmail); if (adminUser == null) { using (var transaction = _dbContext.Database.BeginTransaction()) { _logger.Info( $"Unable to locate default Sys Admin: {SecurityConfig.DefaultAdminEmail} - " + @"creating new Sys Admin"); var newAdminUser = new ApplicationUser() { UserName = SecurityConfig.DefaultAdminEmail, Email = SecurityConfig.DefaultAdminEmail, }; var result = _userManager.Create(newAdminUser, SecurityConfig.DefaultAdminPassword); if (result.Succeeded == false) { throw new Exception( $"UserManager.Create failed: {result.Errors.JoinByNewline()}"); } var resultAddToAdmin = _userManager.AddToRole(newAdminUser.Id, SecurityConfig.AdminRole); if (resultAddToAdmin.Succeeded == false) { throw new Exception( $"UserManager.AddToRole (Admin) failed: {resultAddToAdmin.Errors.JoinByNewline()}"); } transaction.Commit(); } } }
public IHttpActionResult ChangeRole(string userId, [FromBody] string roleName) { if (roleName.Equals("User") || roleName.Equals("Admin") || roleName.Equals("SuperAdmin")) { userManager = new UserManager(); string currentRole = userManager.GetRole(userId).Name; userManagerIdentity = HttpContext.Current.GetOwinContext().GetUserManager <IdentityUserManager>(); userManagerIdentity.RemoveFromRole(userId, currentRole); userManagerIdentity.AddToRole(userId, roleName); return(StatusCode(HttpStatusCode.NoContent)); } return(StatusCode(HttpStatusCode.NotAcceptable)); }