예제 #1
0
        public async Task <IActionResult> UserLogin(string username, string password)
        {
            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
            {
                return(Content("empty"));
            }
            password = Common.Security.MD5Security.MD5Hash(password);
            var listUsers = _userService.GetList(username, password);

            if (listUsers.Count > 0)
            {
                #region 登陆时创建身份Cookie

                var claims = new List <Claim>
                {
                    new Claim(ClaimTypes.PrimarySid, listUsers[0].UserID.ToString()),
                    new Claim(ClaimTypes.Name, username)
                };

                ClaimsPrincipal principal = new ClaimsPrincipal(new ClaimsIdentity(claims, "SuperSecureLogin"));
                await HttpContext.SignInAsync("MyCookieAuthenticationScheme", principal, new AuthenticationProperties()
                {
                    ExpiresUtc   = DateTime.UtcNow.AddMinutes(10),
                    IsPersistent = false,
                    AllowRefresh = false
                });

                #endregion

                //HttpContext.Session.SetInt32("userid", listUsers[0].UserID);
                //HttpContext.Session.SetString("username", username);
                return(RedirectToAction("Index", "Home"));
            }
            return(Content("error"));
        }
예제 #2
0
        public ActionResult Edit(int id)
        {
            ViewBag.UploadFileSize = ConfigUtils.GetValue("UploadFileByImgSize");
            ViewBag.UploadFileType = ConfigUtils.GetValue("UploadFileByImgType");
            var entity = SysUserService.GetList(x => x.Id == id).FirstOrDefault();

            ViewBag.RoleSelectList = RoleSelectList;
            var viewModel = entity.EntityMap();

            if (viewModel.SysRoles.Count != 0)
            {
                viewModel.RoleIds = string.Join(",", viewModel.SysRoles.Select(x => x.Id.ToString()).ToArray());
            }
            return(View(viewModel));
        }
예제 #3
0
        public ActionResult Edit(int id, SysUserViewModel viewModel)
        {
            if (ModelState.IsValid == false)
            {
                return(WriteError("实体验证失败"));
            }
            var user = SysUserService.GetList(x => x.UserName == viewModel.UserName && x.Id != id).FirstOrDefault();

            if (user != null)
            {
                return(WriteError("该账号已存在"));
            }
            //获取角色
            var roleList = new List <SysRole>();

            if (!string.IsNullOrEmpty(viewModel.RoleIds))
            {
                var RoleIdsArray = Array.ConvertAll(viewModel.RoleIds.Split(','), s => int.Parse(s));
                roleList = SysRoleService.GetList(x => RoleIdsArray.Contains(x.Id)).ToList();
            }
            //赋值
            var entity = SysUserService.GetList(x => x.Id == id).FirstOrDefault();

            entity.SysRoles.Clear();
            foreach (var item in roleList)
            {
                entity.SysRoles.Add(item);
            }
            entity.UserName     = viewModel.UserName;
            entity.NickName     = viewModel.NickName;
            entity.HeadIcon     = viewModel.HeadIcon;
            entity.MobilePhone  = viewModel.MobilePhone;
            entity.Email        = viewModel.Email;
            entity.EnabledMark  = (int)viewModel.EnabledMark;
            entity.MobilePhone  = viewModel.MobilePhone;
            entity.Email        = viewModel.Email;
            entity.UpdateTime   = DateTime.Now;
            entity.UpdateUserId = UserManager.GetCurrentUserInfo().Id;
            SysUserService.Update(entity);
            return(WriteSuccess());
        }
예제 #4
0
 public ActionResult Create(SysUserViewModel viewModel)
 {
     try
     {
         if (ModelState.IsValid == false)
         {
             return(WriteError("实体验证失败"));
         }
         var user = SysUserService.GetList(x => x.UserName == viewModel.UserName).FirstOrDefault();
         if (user != null)
         {
             return(WriteError("该账号已存在"));
         }
         string  salt         = VerifyCodeUtils.CreateVerifyCode(5);
         string  passwordHash = Md5Utils.EncryptTo32(salt + ConfigUtils.GetValue("InitUserPwd"));
         SysUser entity       = viewModel.EntityMap();
         entity.CreateUserId = UserManager.GetCurrentUserInfo().Id;
         entity.UpdateUserId = UserManager.GetCurrentUserInfo().Id;
         entity.CreateTime   = DateTime.Now;
         entity.UpdateTime   = DateTime.Now;
         entity.PasswordSalt = salt;
         entity.PasswordHash = passwordHash;
         if (!string.IsNullOrEmpty(viewModel.RoleIds))
         {
             var RoleIdsArray = Array.ConvertAll(viewModel.RoleIds.Split(','), s => int.Parse(s));
             var roleList     = SysRoleService.GetList(x => RoleIdsArray.Contains(x.Id)).ToList();
             entity.SysRoles = roleList;
         }
         SysUserService.Add(entity);
         return(WriteSuccess());
     }
     catch (Exception ex)
     {
         return(WriteError(ex));
     }
 }
예제 #5
0
        public IActionResult Index(string oldpassword, string newpwd1, string newpwd2)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(MsgContent("未找到该用户,请联系管理员!"));
            }
            if (string.IsNullOrEmpty(oldpassword) || string.IsNullOrEmpty(newpwd1) || string.IsNullOrEmpty(newpwd2))
            {
                return(MsgContent("请把修改密码信息填写完整!"));
            }

            if (newpwd1 != newpwd2)
            {
                return(MsgContent("二次密码输入不相同!"));
            }

            oldpassword = Common.Security.MD5Security.MD5Hash(oldpassword);
            int    userid   = int.Parse(User.Identities.First(u => u.IsAuthenticated).FindFirst(ClaimTypes.PrimarySid).Value);
            string username = User.Identities.First(u => u.IsAuthenticated).FindFirst(ClaimTypes.Name).Value;
            var    list     = _userService.GetList(username, oldpassword);

            if (list == null || list.Count <= 0)
            {
                return(MsgContent("原密码错误!"));
            }
            bool isSuccess = _userService.Update(new T_SYS_USER()
            {
                UserID = userid, Password = Common.Security.MD5Security.MD5Hash(newpwd1)
            });

            if (isSuccess)
            {
                return(Content("<script>alert('修改密码成功!');parent.location.href='/Admin/Login'</script>", "text/html"));
            }
            return(MsgContent("密码修改失败!"));
        }
예제 #6
0
 public ActionResult Login(LoginViewModel loginViewModel)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             return(WriteError("实体验证失败"));
         }
         if (loginViewModel.VerifyCode.ToLower() != (string)TempData["verifyCode"])
         {
             return(WriteError("验证码失败"));
         }
         bool result = SysUserService.CheckLogin(loginViewModel.LoginName, loginViewModel.LoginPassword);
         if (result)
         {
             var    user        = SysUserService.GetList(x => x.UserName == loginViewModel.LoginName).FirstOrDefault();
             string userLoginId = Guid.NewGuid().ToString();
             if (loginViewModel.IsMember)
             {
                 List <string> list = new List <string>
                 {
                     userLoginId,
                     "0"
                 };
                 CookieHelper.Set(KeyManager.IsMember, DESUtils.Encrypt(list.ToJson()));
                 CacheManager.Set(userLoginId, user, new TimeSpan(10, 0, 0, 0));
             }
             else
             {
                 CookieHelper.Remove(KeyManager.IsMember);
                 List <string> list = new List <string>
                 {
                     userLoginId,
                     "1"
                 };
                 CookieHelper.Set(KeyManager.IsMember, DESUtils.Encrypt(list.ToJson()), 30);
                 CacheManager.Set(userLoginId, user, new TimeSpan(0, 30, 0));
             }
             SysLogLogonService.WriteDbLog(new SysLogLogon
             {
                 LogType     = DbLogType.Login.ToString(),
                 Account     = user.UserName,
                 RealName    = user.NickName,
                 Description = "登陆成功",
             });
             return(WriteSuccess("登录成功"));
         }
         else
         {
             return(WriteError("用户名或者密码错误"));
         }
     }
     catch (Exception ex)
     {
         SysLogLogonService.WriteDbLog(new SysLogLogon
         {
             LogType     = DbLogType.Exception.ToString(),
             Account     = loginViewModel.LoginName,
             RealName    = loginViewModel.LoginName,
             Description = "登录失败," + ex.Message
         });
         return(WriteError(ex));
     }
 }