예제 #1
0
 /// <summary>
 /// 判断Cookie信息
 /// </summary>
 private void CheckCookieInfo()
 {
     if (Request.Cookies["ckUid"] != null && Request.Cookies["ckPwd"] != null)
     {
         string userName = Request.Cookies["ckUid"].Value;
         string userPwd  = Request.Cookies["ckPwd"].Value;
         //判断Cookie中存储的用户密码和用户名是否正确.
         SMUSERTB person = SMUSERTBService.ValidateUser(userName, userPwd);
         if (person != null)
         {
             string sessionId = Guid.NewGuid().ToString();                                                                          //作为Memcache的key
             var    account   = person.ToAccount();
             Common.MemcacheHelper.Set(sessionId, Common.SerializerHelper.SerializeToString(account), DateTime.Now.AddMinutes(20)); //使用Memcache代替Session解决数据在不同Web服务器之间共享的问题。
             Response.Cookies["sessionId"].Value = sessionId;                                                                       //将Memcache的key以cookie的形式返回到浏览器端的内存中,当用户再次请求其它的页面请求报文中会以Cookie将该值再次发送服务端。
             //Response.Redirect("/Home/Index"); 尽量不要用这样的写法
             RedirectToAction("Index", "Home");
         }
         else
         {
             //如果说帐号秘密是错误的,就没必要再把登录用户名和密码存在cookies中了
             Response.Cookies["ckUid"].Expires = DateTime.Now.AddDays(-1);
             Response.Cookies["ckPwd"].Expires = DateTime.Now.AddDays(-1);
         }
     }
 }
        //[SupportFilter]
        public ActionResult Delete(FormCollection collection)
        {
            string returnValue = string.Empty;

            int[] deleteId = collection["query"].GetString().ToIntList().ToArray <int>();
            if (deleteId != null && deleteId.Length > 0)
            {
                SMLOG _SMLOG = new SMLOG {
                    OPERATION_TYPE = "D", FUNC_CODE = "010000", USER_ID = UserId, CLASSNAME = this.GetType().ToString() + strDelete
                };
                int        userId    = deleteId[0];
                var        userInfo  = SMUSERTBService.LoadEntities(x => x.USER_ID == userId).FirstOrDefault();
                List <int> roleIds   = userInfo.SMROLETB.Select(x => x.ROLE_ID).ToList();
                var        userRoles = SMROLETBService.LoadEntities(x => roleIds.Contains(x.ROLE_ID)).ToList();
                foreach (var v in userRoles)
                {
                    userInfo.SMROLETB.Remove(v);
                }

                if (SMUSERTBService.DeleteEntity(userInfo))
                {
                    _SMLOG.REMARK = "用户:" + GetCurrentAccount().USER_NAME + Suggestion.DeleteSucceed;
                    SMLOGService.AddEntity(_SMLOG);//删除成功,写入日志
                    return(Json("OK"));
                }
                else
                {
                    _SMLOG.REMARK = "用户:" + GetCurrentAccount().USER_NAME + Suggestion.DeleteFail;
                    SMLOGService.AddEntity(_SMLOG);//删除失败,写入日志
                }
                returnValue = _SMLOG.REMARK;
            }

            return(Json(returnValue));
        }
        public JsonResult Details(int id)
        {
            var result = SMUSERTBService.LoadEntities(x => x.USER_ID == id).ToList();
            var item   = result.Select(u => new UserView
            {
                USER_ID        = u.USER_ID,
                USER_NAME      = u.USER_NAME,
                U_ID           = u.U_ID,
                GENDER         = u.GENDER,
                STATUS         = u.STATUS,
                U_PASSWORD     = u.U_PASSWORD,
                CREATION_USER  = u.CREATION_USER,
                UPDATE_USER    = u.UPDATE_USER,
                CREATION_TIME  = u.CREATION_TIME,
                UPDATE_TIME    = u.UPDATE_TIME,
                CreateUserName = u.SMUSERTB3 == null?string.Empty:u.SMUSERTB3.USER_NAME,
                UpdateUserName = u.SMUSERTB2 == null?string.Empty:u.SMUSERTB2.USER_NAME,
                COMPONENT_ID   = u.COMPONENT_ID,
                GenderName     = u.GENDER.GetGenderName(),
                StatusName     = u.STATUS.GetStatusName(),
                RoleNames      = u.SMROLETB.Select(x => x.ROLE_NAME).ToList()
            }).FirstOrDefault();

            foreach (var s in item.RoleNames)
            {
                item.SysRoleId += s + ",";
            }

            string usernames = string.IsNullOrWhiteSpace(item.SysRoleId) ? string.Empty : item.SysRoleId.TrimEnd(',');

            item.SysRoleId = usernames;
            return(Json(item, JsonRequestBehavior.AllowGet));
        }
        //[SupportFilter]
        public ActionResult Edit(int id, SMUSERTB entity)
        {
            if (entity != null && ModelState.IsValid)
            {
                entity.UPDATE_USER = UserId;
                string returnValue = string.Empty;
                SMLOG  _SMLOG      = new SMLOG {
                    OPERATION_TYPE = "U", FUNC_CODE = "010702", USER_ID = UserId, CLASSNAME = this.GetType().ToString() + strEdit
                };
                List <int> oldRoleIds = entity.SysRoleIdOld.GetIdSort();
                List <int> roleIds    = entity.SysRoleId.GetIdSort();

                if (SMUSERTBService.UpdateUserInfo(oldRoleIds, entity, roleIds))
                {
                    _SMLOG.REMARK = "用户:" + entity.USER_NAME + Suggestion.UpdateSucceed;
                    SMLOGService.AddEntity(_SMLOG);         //写入日志
                    return(Json(Suggestion.UpdateSucceed)); //提示更新成功
                }
                else
                {
                    _SMLOG.REMARK = "用户:" + entity.USER_NAME + Suggestion.UpdateFail + "原因:" + returnValue;
                    SMLOGService.AddEntity(_SMLOG);                    //写入日志
                    return(Json(Suggestion.UpdateFail + returnValue)); //提示更新失败
                }
            }
            return(Json(Suggestion.UpdateFail + "请核对输入的数据的格式")); //提示输入的数据的格式不对
        }
예제 #5
0
 public HomeController(SMUSERTBService userService,
                       SMMENUTBService menuService,
                       SMMENUROLEFUNCTBService menuRoleService)
 {
     SMUSERTBService         = userService;
     SMMENUTBService         = menuService;
     SMMENUROLEFUNCTBService = menuRoleService;
 }
예제 #6
0
 public SysUserController(SMLOGService logService,
                          SMROLETBService roleService,
                          SMUSERTBService userService)
 {
     SMLOGService    = logService;
     SMROLETBService = roleService;
     SMUSERTBService = userService;
 }
        public JsonResult GetData(UserInfoParam userInfoParam)
        {
            var queryData = SMUSERTBService.LoadSearchEntities(userInfoParam);
            var data      = queryData.Select(u => u.ToPoCo());

            //构造成Json的格式传递
            var result = new { total = data.Count(), rows = data };

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// 首次编辑
        /// </summary>
        /// <param name="id">主键</param>
        /// <returns></returns>
        //[SupportFilter]
        public ActionResult Edit(int id)
        {
            if (id < 1)
            {
                return(null);
            }
            SMUSERTB entity = SMUSERTBService.LoadEntities(x => x.USER_ID == id).FirstOrDefault();

            entity.U_PASSWORD   = xEncrypt.DecryptText(entity.U_PASSWORD);//解密
            entity.SurePassword = entity.U_PASSWORD;

            return(View(entity));
        }
예제 #9
0
        [ValidateAntiForgeryToken]//防伪造令牌来避免CSRF攻击
        public ActionResult Index(LogOnModel model)
        {
            #region 验证码验证

            if (Session["ValidateCode"] != null && model.ValidateCode != null && model.ValidateCode.ToLower() != Session["ValidateCode"].ToString())
            {
                ModelState.AddModelError("Error_PersonLogin", "验证码错误!");
                return(View());
            }
            //Session["ValidateCode"] = null;
            #endregion

            if (ModelState.IsValid)
            {
                SMUSERTB person = SMUSERTBService.ValidateUser(model.PersonName, xEncrypt.EncryptText(model.Password));
                if (person != null) //登录成功
                {
                    Account account = person.ToAccount();

                    string sessionId = Guid.NewGuid().ToString();//作为Memcache的key
                    try
                    {
                        MemcacheHelper.Set(sessionId, Common.SerializerHelper.SerializeToString(account), DateTime.Now.AddMinutes(20));//使用Memcache代替Session解决数据在不同Web服务器之间共享的问题。
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    Response.Cookies["sessionId"].Value = sessionId;//将Memcache的key以cookie的形式返回到浏览器端的内存中,当用户再次请求其它的页面请求报文中会以Cookie将该值再次发送服务端。

                    if (model.RememberMe)
                    {
                        HttpCookie ckUid = new HttpCookie("ckUid", model.PersonName);
                        HttpCookie ckPwd = new HttpCookie("ckPwd", xEncrypt.EncryptText(model.Password));
                        ckUid.Expires = DateTime.Now.AddDays(3);
                        ckPwd.Expires = DateTime.Now.AddDays(3);
                        Response.Cookies["sessionId"].Expires = DateTime.Now.AddDays(3);
                        Response.Cookies.Add(ckUid);
                        Response.Cookies.Add(ckPwd);
                    }
                    return(RedirectToAction("Index", "Home"));
                }
            }
            ModelState.AddModelError("Error_PersonLogin", "用户名或者密码出错。");
            return(View());
        }
예제 #10
0
        public ActionResult Index()
        {
            var result = SMUSERTBService.LoadEntities(x => x.STATUS == "Y").ToList();

            ViewBag.Name = result != null && result.Count > 0? result.FirstOrDefault().USER_NAME:"";
            Account account = GetCurrentAccount();

            if (account == null)
            {
                return(RedirectToAction("Index", "Login"));
            }
            else
            {
                ViewData["PersonName"] = account.UID;

                ViewData["Menu"] = SMMENUTBService.GetMenuByAccount(ref account);// 获取菜单
            }
            return(View());
        }
        //[SupportFilter]
        public ActionResult Create(SMUSERTB entity)
        {
            if (entity != null && ModelState.IsValid)
            {
                entity.CREATION_TIME = DateTime.Now;
                entity.CREATION_USER = UserId;
                entity.U_PASSWORD    = xEncrypt.EncryptText(entity.U_PASSWORD);//加密

                string returnValue = string.Empty;

                if (SMUSERTBService.LoadEntities(x => x.U_ID == entity.U_ID).FirstOrDefault() != null)
                {
                    returnValue = "登录名已存在!";
                    return(Json(Suggestion.InsertFail + returnValue));
                }

                SMLOG _SMLOG = new SMLOG {
                    OPERATION_TYPE = "N", FUNC_CODE = "010702", USER_ID = UserId, CLASSNAME = this.GetType().ToString() + strCreate
                };
                List <int> roleIds = entity.SysRoleId.GetIdSort();
                entity.SMROLETB = SMROLETBService.LoadEntities(x => roleIds.Contains(x.ROLE_ID)).ToList();
                var result = SMUSERTBService.AddEntity(entity);

                if (result != null)
                {
                    _SMLOG.REMARK = "用户:" + entity.USER_NAME + Suggestion.InsertSucceed;
                    SMLOGService.AddEntity(_SMLOG);//写入日志
                    return(Json(Suggestion.InsertSucceed));
                }
                else
                {
                    _SMLOG.REMARK = "用户:" + entity.USER_NAME + Suggestion.InsertFail + "原因:" + returnValue;
                    SMLOGService.AddEntity(_SMLOG);//写入日志
                    //提示插入失败
                    return(Json(Suggestion.InsertFail + returnValue));
                }
            }
            return(Json(Suggestion.InsertFail + "请核对输入的数据的格式")); //提示输入的数据的格式不对
        }
예제 #12
0
        public ActionResult ChangePassword(ChangePasswordModel model)
        {
            string currentPerson = GetCurrentAccount().UID;

            ViewBag.PersonNamea = currentPerson;
            if (string.IsNullOrWhiteSpace(currentPerson))
            {
                ModelState.AddModelError("Error_PwdModify", "对不起,请重新登陆");
                return(View());
            }
            if (ModelState.IsValid)
            {
                if (null != (SMUSERTBService.ValidateUser(currentPerson, xEncrypt.EncryptText(model.OldPassword))))
                {
                    if (SMUSERTBService.ChangePassword(currentPerson, xEncrypt.EncryptText(model.OldPassword), xEncrypt.EncryptText(model.NewPassword)))
                    {
                        ModelState.AddModelError("Error_PwdModify", "修改密码成功");
                        return(View());
                    }
                }
            }
            ModelState.AddModelError("Error_PwdModify", "修改密码不成功,请核实数据");
            return(View());
        }
예제 #13
0
 public LoginController(SMUSERTBService userService)
 {
     SMUSERTBService = userService;
 }