public async Task <LoginViewModel> Login([FromBody] LoginParam param)
        {
            string     md5pwd   = SafeHelper.MD5TwoEncrypt(param.PassWord);
            T_UserInfo userInfo = await _userService.FindAsync(u => u.UserName == param.UserName && u.PassWord == md5pwd);

            if (userInfo == null)
            {
                throw new UserFriendlyException("用户名或密码错误");
            }

            JwtModel jwtModel = new JwtModel
            {
                IsAdmin    = userInfo.IsAdmin,
                UserId     = userInfo.Id,
                NickName   = userInfo.NickName,
                UserName   = userInfo.UserName,
                Expiration = TimeSpan.FromSeconds(60 * 60),
                Role       = userInfo.IsAdmin ? string.Join(",", ConstInfo.ClientPolicy, ConstInfo.AdminPolicy)
               : ConstInfo.ClientPolicy
            };
            var result = JwtHelper.BuildJwtToken(jwtModel);

            result.NickName  = userInfo.NickName;
            result.AvatarUrl = userInfo.AvatarUrl;
            result.UseMdEdit = userInfo.UseMdEdit;
            return(result);
        }
Example #2
0
        public async Task <ActionResult> Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                if (await _service.FindAsync(s => s.PhoneNumber.ToLower() == model.PhoneNumber.ToLower()) != null)
                {
                    ModelState.AddModelError("PhoneNumber", "Такой пользователь уже существует в системе. Пожалуйста, введите другой номер телефона!");
                }
                else if (await _service.FindAsync(s => s.Email.ToLower() == model.Email.ToLower()) != null)
                {
                    ModelState.AddModelError("Email", "Такой пользователь уже существует в системе. Пожалуйста, введите другой эл. адрес почты!");
                }
                else if (await _service.FindAsync(s => s.UserName.ToLower() == model.UserName.ToLower()) != null)
                {
                    ModelState.AddModelError("UserName", "Такой пользователь уже существует в системе. Пожалуйста, введите другой логин!");
                }
                else
                {
                    var sysAdminRole = RoleManager.Roles.FirstOrDefault(s => s.Name == "SysAdmin");
                    model.DateRegistration = DateTime.Now;
                    model.RoleId           = sysAdminRole.Id;
                    var user = Mapper.Map <RegisterModel, UserInfo>(model);
                    user.RoleInfo             = sysAdminRole;
                    user.EmailConfirmed       = true;
                    user.PhoneNumberConfirmed = true;
                    var result = await UserManager.CreateAsync(user, model.Password);

                    var role = await RoleManager.FindByIdAsync(user.RoleInfoId);

                    await UserManager.AddToRoleAsync(user.Id, role.Name);

                    if (!await UserManager.IsInRoleAsync(user.Id, role.Name))
                    {
                        await UserManager.AddToRoleAsync(user.Id, role.Name);
                    }

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("Login", "Account"));
                    }
                    else
                    {
                        foreach (string error in result.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error);
                        }
                    }
                }
            }
            return(View(model));
        }
Example #3
0
        public async Task <ActionResult <UserInfo> > Get(int id)
        {
            UserInfo viewModel = await _userInfoService.FindAsync(m => m.ID == id);

            return(Ok(viewModel));
        }