Exemple #1
0
        public ActionResult UserAjaxLogin()
        {
            //Stream file = Request.InputStream;
            //StreamReader sr = new StreamReader(file, Encoding.UTF8);
            //string restOfStream = sr.ReadToEnd();
            //sr.Close();
            //StreamWriter sw = new StreamWriter(Server.MapPath("/upload/GoodsStorageReport/login.txt"), true, Encoding.UTF8);
            //string w = restOfStream;
            //sw.Write(w);
            //sw.Close();

            UserModel user = new UserModel();

            this.TryUpdateModel <UserModel>(user);
            if (!string.IsNullOrEmpty(user.UserName) && !string.IsNullOrEmpty(user.Password))
            {
                user.Password = Utils.ToMd5(user.Password);
            }
            else
            {
                user.ErrorCode = -2;
                user.ErrorMsg  = "用户名或密码不能为空!";
                return(Json(new VResult()
                {
                    success = false, msg = "用户名或密码不能为空"
                }));
                //return Json(new VResult() { success = false, msg = "用户名或密码不能为空!" });
            }
            string uName = user.UserName;

            user = _UserBLL.AjaxLogin(user);
            if (user != null)
            {
                FormsAuthentication.SetAuthCookie(user.Id.ToString(), false); // 加入form验证票据
                SessionUser loginUser = new SessionUser();
                foreach (RoleModel role in user.Roles)
                {
                    loginUser.Roles.Add(role);
                    foreach (MenuModel menu in role.Menus)
                    {
                        if (menu.Status == 0)
                        {
                            loginUser.MenuPermission.Add(menu);
                        }
                    }
                }
                loginUser.MenuPermission = loginUser.MenuPermission.OrderBy(a => a.TreeCode).OrderBy(a => a.Sort).ToList();
                loginUser.UserInfo       = user;
                System.Web.HttpContext.Current.Session.Add(SessionUserKey, loginUser);
                {//操作日志
                    OperateLogModel log = new OperateLogModel()
                    {
                        StoreId  = user.StoreId,
                        UserId   = user.Id,
                        UserName = user.RealName,
                        Extra    = "[{\"UserId\":" + user.Id + "}]"
                    };
                    log.Description = "用户【" + user.RealName + "】从[IPAD]登陆。";
                    _UserBLL.InsertOperateLog(log);
                }
                return(Json(new { success = true, user = user }));
            }
            return(Json(new VResult()
            {
                success = false, msg = "用户名或密码不正确"
            }));
        }