Example #1
0
        /// <summary>
        /// 更新登录信息
        /// </summary>
        /// <param name="user">玩家</param>
        /// <param name="loginIp">登录ip</param>
        private static void UpdateLoginInfo(User user, String loginIp)
        {
            user.LastLoginIP   = loginIp;
            user.LastLoginTime = DateTime.Now;

            DataAccessBLL.Update(user);
        }
Example #2
0
        /// <summary>
        /// 模型转化
        /// </summary>
        private UserViewModel ModelConvert(User model)
        {
            if (model == null)
            {
                return(null);
            }

            var role = DataAccessBLL.GetList(new Role {
                ID = model.UserRole
            }).FirstOrDefault();

            return(new UserViewModel()
            {
                UserID = model.UserID,
                Status = model.Status,
                UserAccount = model.UserAccount,
                UserPwd = model.UserPwd,
                UserName = model.UserName,
                IfSuper = model.IfSuper,
                UserRole = model.UserRole,
                LastLoginIP = model.LastLoginIP,
                LastLoginTime = model.LastLoginTime,
                Crdate = model.LastLoginTime,

                UserRoleName = role == null ? "角色不存在" : role.RolesName,
                MenuId = role == null ? "" : role.Page,
            });
        }
Example #3
0
        /// <summary>
        /// 获取用户
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="pwd">密码</param>
        /// <returns></returns>
        private static User GetUser(String userAccount, String pwd)
        {
            // 获取用户
            String userPwd = EncryptionMD5.MD5Encrypt32(pwd, EncryptionMD5.LetterCase.UpperCase);
            var    user    = DataAccessBLL.GetDefinedList(new User
            {
                UserAccount = userAccount,
                UserPwd     = userPwd
            });

            return(user.FirstOrDefault());
        }
        /// <summary>
        /// 执行操作(调用方法特性后由框架调用)
        /// </summary>
        /// <param name="filterContext">过滤上下文</param>
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            //方法名称
            var actionName = filterContext.ActionDescriptor.ActionName;
            //控制器
            var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;

            Dictionary <String, String> parmsObj = new Dictionary <String, String>();

            foreach (var item in parameterNameList.Split(',', '|'))
            {
                var valueProviderResult = filterContext.Controller.ValueProvider.GetValue(item);

                if (valueProviderResult != null && !parmsObj.ContainsKey(item))
                {
                    parmsObj.Add(item, valueProviderResult.AttemptedValue);
                }
            }

            var ticketUser = FormsAuthenticationService.GetAuthenticatedUser();

            try
            {
                String responseDataStr = JsonConvert.SerializeObject(filterContext.Result);
                if (responseDataStr == null)
                {
                    responseDataStr = String.Empty;
                }

                DataAccessBLL.Insert(new UserOperationLog
                {
                    UserID          = ticketUser?.UserID ?? 0,
                    UserAccount     = ticketUser == null ? "未知用户" : ticketUser.UserAccount,
                    OperationMothod = $"{controllerName}.{actionName}",
                    OperationName   = operationExplain,
                    OperationData   = JsonConvert.SerializeObject(parmsObj),
                    ReturnData      = responseDataStr,
                    Crdate          = DateTime.Now
                });
            }
            catch (Exception ex)
            {
                // 记录错误日志
            }
        }
Example #5
0
        public ActionResult Index(UserViewModel model, String vcode)
        {
            String  message = String.Empty;
            Boolean result  = false;

            if (false)
            {
                if (Session["vcode"] == null)
                {
                    message       = "验证码过期";
                    model.Message = message;
                    model.UserPwd = String.Empty;
                    return(View("Index", model));
                }

                if (Session["vcode"].ToString() != vcode)
                {
                    message       = "验证码错误";
                    model.Message = message;
                    model.UserPwd = String.Empty;
                    return(View("Index", model));
                }
            }

            if (String.IsNullOrEmpty(model.UserAccount) || String.IsNullOrEmpty(model.UserPwd))
            {
                message       = "请输入账号、密码!";
                model.Message = message;
                model.UserPwd = String.Empty;
                return(View("Index", model));
            }

            var loginUserByDB = GetUser(model.UserAccount, model.UserPwd);

            if (loginUserByDB == null)
            {
                message       = "请输入正确的账号、密码!";
                model.Message = message;
                model.UserPwd = String.Empty;
                return(View("Index", model));
            }

            if (loginUserByDB.Status != 0)
            {
                message       = "您的帐号已被锁定,请联系管理员!";
                model.Message = message;
                model.UserPwd = String.Empty;
                return(View("Index", model));
            }

            var loginUser = ModelConvert(loginUserByDB);
            var loginIp   = Request.UserHostAddress;

            UpdateLoginInfo(loginUserByDB, loginIp);
            FormsAuthenticationService.SignIn(loginUser);

            //日志记录
            DataAccessBLL.Insert(new UserOperationLog
            {
                UserID          = loginUser.UserID,
                UserAccount     = loginUser.UserAccount,
                OperationMothod = "login.Index",
                OperationName   = "系统登录",
                OperationData   = "",
                ReturnData      = String.Empty,
                Crdate          = DateTime.Now
            });

            Session["vcode"] = String.Empty;

            // 登陆成功 判断之前是否访问某个页面 没有就跳转到home
            if (String.IsNullOrEmpty(model.ReturnUrl) || model.ReturnUrl.Trim() == "/")
            {
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                return(Redirect(model.ReturnUrl));
            }
        }