public async Task <ActionResult> Index() { if (IdentityContract.Users.Count() <= 2) { UserInputDto dto = new UserInputDto() { RecommendId = 0, UserName = "******", NickName = "管理员", Email = "*****@*****.**", EmailConfirmed = true, PhoneNumber = "13561962764", Password = "******" }; OperationResult result = await IdentityContract.CreateUsers(dto); if (!result.Successed) { return(Content("创建初始用户失败:" + result.Message)); } UserRoleMapInputDto mapDto = new UserRoleMapInputDto() { UserId = 1, RoleId = 1 }; result = await IdentityContract.CreateUserRoleMaps(mapDto); if (!result.Successed) { return(Content("给初始用户赋角色失败:" + result.Message)); } } return(View()); }
public async Task <ActionResult> Register(RegisterViewModel model) { model.CheckNotNull(nameof(model)); if (Session["Reg_EmailCode"] == null || Session["Reg_EmailCode"].ToString() != model.EmailCode) { return(Json(new AjaxResult("验证码错误", AjaxResultType.Error))); } UserInputDto dto = model.MapTo <UserInputDto>(); dto.NickName = dto.UserName; dto.RecommendId = dto.RecommendId == 0 ? 1 : dto.RecommendId; dto.EmailConfirmed = true; //邮箱通过验证 OperationResult result = await IdentityContract.CreateUsers(dto); if (result.ResultType == OperationResultType.Success) { //初始化用户角色 User newuser = IdentityContract.Users.SingleOrDefault(u => u.UserName == dto.UserName); if (newuser != null) { UserRoleMapInputDto mapDto = new UserRoleMapInputDto() { UserId = newuser.Id, RoleId = 2 }; result = await IdentityContract.CreateUserRoleMaps(mapDto); if (!result.Successed) { return(Json(new AjaxResult(result.Message, AjaxResultType.Error))); } } #region 用户登录 LoginInfo loginInfo = new LoginInfo { UserName = dto.UserName, Password = dto.Password, Remember = false }; OperationResult <User> loginresult = await IdentityContract.Login(loginInfo, true); if (loginresult.ResultType == OperationResultType.Success) { User user = loginresult.Data; AuthenticationManager.SignOut(); await SignInManager.SignInAsync(user, loginInfo.Remember, true); } #endregion return(Json(new AjaxResult("登录成功", AjaxResultType.Success))); } else { return(Json(new AjaxResult(result.Message, AjaxResultType.Error))); } }
/// <summary> /// 由选中的用户编号设置用户拥有的角色 /// </summary> /// <param name="userId">用户编号</param> /// <param name="roleIds">角色编号集合</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> SetUserRoleMaps(int userId, int[] roleIds) { User user = await UserManager.FindByIdAsync(userId); if (user == null) { return(new OperationResult(OperationResultType.QueryNull, $"编号为“{userId}”的用户信息不存在")); } int[] existRoleIds = UserRoleMapRepository.Entities.Where(m => m.User.Id == userId).Select(m => m.Role.Id).Distinct().ToArray(); int[] addRoleIds = roleIds.Except(existRoleIds).ToArray(); int[] removeRoleIds = existRoleIds.Except(roleIds).ToArray(); UserRoleMapRepository.UnitOfWork.TransactionEnabled = true; foreach (int roleId in addRoleIds) { UserRoleMapInputDto dto = new UserRoleMapInputDto() { UserId = userId, RoleId = roleId }; OperationResult result = await UserManager.CreateUserRoleMapAsync(dto); if (!result.Successed) { return(result); } } int[] removeMapIds = UserRoleMapRepository.Entities.Where(m => m.User.Id == userId && removeRoleIds.Contains(m.Role.Id)) .Select(m => m.Id).ToArray(); foreach (int mapId in removeMapIds) { OperationResult result = await UserManager.DeleteUserRoleMapAsync(mapId); if (!result.Successed) { return(result); } } return(await UserRoleMapRepository.UnitOfWork.SaveChangesAsync() > 0 ? new OperationResult(OperationResultType.Success, "用户设置角色操作成功,共添加 {0} 个角色,删除 {1} 个角色".FormatWith(addRoleIds.Length, removeMapIds.Length)) : new OperationResult(OperationResultType.NoChanged)); }