Beispiel #1
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public login_log DataRowToModel(DataRow row)
        {
            login_log model = new login_log();

            if (row != null)
            {
                if (row["id"] != null && row["id"].ToString() != "")
                {
                    model.id = int.Parse(row["id"].ToString());
                }
                if (row["openid"] != null)
                {
                    model.openid = row["openid"].ToString();
                }
                if (row["login_time"] != null && row["login_time"].ToString() != "")
                {
                    model.login_time = DateTime.Parse(row["login_time"].ToString());
                }
                if (row["login_state"] != null && row["login_state"].ToString() != "")
                {
                    model.login_state = int.Parse(row["login_state"].ToString());
                }
            }
            return(model);
        }
Beispiel #2
0
 public ActionResult adminLogin(user u)
 {
     if (u != null)
     {
         // 查询用户的数据,判断权限
         reflectModel.setValues(u);
         if (u.nick_name.Length > 0 && u.pwd.Length > 0)
         {
             u.pwd = HashTools.SHA1_Hash(u.pwd);
             using (WeiQingEntities db = new WeiQingEntities())
             {
                 var user = db.user.Where(x => (x.nick_name.Equals(u.nick_name) || x.email.Equals(u.nick_name)) && x.pwd.Equals(u.pwd) && x.state == 1).FirstOrDefault();
                 if (user != null && user.is_admin && user.id > 0)
                 {
                     Session["user"] = user;
                     string    ip  = Tools.GetRealIP();
                     login_log log = new login_log()
                     {
                         uid = (int)user.id, login_ip = ip, login_time = DateTime.Now
                     };
                     db.login_log.Add(log);
                     db.SaveChanges();
                     return(Content("1"));
                 }
             }
         }
         return(Content("-2"));
     }
     return(Content("-1"));
 }
Beispiel #3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(login_log model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into login_log(");
            strSql.Append("id,openid,login_time,login_state)");
            strSql.Append(" values (");
            strSql.Append("@id,@openid,@login_time,@login_state)");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@id",          MySqlDbType.Int32,      10),
                new MySqlParameter("@openid",      MySqlDbType.VarChar,   100),
                new MySqlParameter("@login_time",  MySqlDbType.DateTime),
                new MySqlParameter("@login_state", MySqlDbType.Int32, 10)
            };
            parameters[0].Value = model.id;
            parameters[1].Value = model.openid;
            parameters[2].Value = model.login_time;
            parameters[3].Value = model.login_state;

            int rows = DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(login_log model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update login_log set ");
            strSql.Append("openid=@openid,");
            strSql.Append("login_time=@login_time,");
            strSql.Append("login_state=@login_state");
            strSql.Append(" where id=@id ");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@openid",      MySqlDbType.VarChar,   100),
                new MySqlParameter("@login_time",  MySqlDbType.DateTime),
                new MySqlParameter("@login_state", MySqlDbType.Int32,      10),
                new MySqlParameter("@id",          MySqlDbType.Int32, 10)
            };
            parameters[0].Value = model.openid;
            parameters[1].Value = model.login_time;
            parameters[2].Value = model.login_state;
            parameters[3].Value = model.id;

            int rows = DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #5
0
        /// <summary>
        /// 判断登陆用户信息(如无则添加)
        /// </summary>
        /// <param name="md"></param>
        /// <returns></returns>
        public mjuserinfo AddUser(mjuserinfo md, GameSession session)
        {
            int           returnid = 0;
            mjuserinfoDAL dal      = new mjuserinfoDAL();
            mjuserinfo    model    = dal.GetModel(md.openid);
            login_logDAL  Ldal     = new login_logDAL();
            login_log     Lmodel   = new login_log();



            if (model == null)
            {
                try
                {
                    returnid   = dal.GetMaxID() + 1;
                    md.id      = returnid;
                    md.addtime = DateTime.Now;
                    string fileName = string.Empty;
                    string imgurl   = PictureUtility.SavePicture(md.headimg, out fileName); //将图片保存至本地返回详细路径和文件名
                    if (!string.IsNullOrEmpty(imgurl))                                      //验证是否保存成功
                    {
                        md.headimg = PutObjectSample.PutObjectFromFile(imgurl, fileName);
                    }
                    dal.Add(md);
                    Lmodel.id          = Ldal.GetMaxID() + 1;
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Ldal.Add(Lmodel);
                }
                catch (Exception ex)
                {
                    session.Logger.Error(ex);
                }



                return(md);
            }
            else
            {
                try
                {
                    Lmodel.id          = Ldal.GetMaxID() + 1;
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Ldal.Add(Lmodel);
                }
                catch (Exception)
                {
                    throw;
                }

                return(model);
            }
        }
Beispiel #6
0
        /// <summary>
        /// 判断登陆用户信息(如无则添加)
        /// </summary>
        /// <param name="md"></param>
        /// <returns></returns>
        public mjuserinfo AddUser(mjuserinfo md, GameSession session)
        {
            mjuserinfoDAL dal    = new mjuserinfoDAL();
            mjuserinfo    model  = dal.GetModel(md.openid);
            LogDAL        Ldal   = new LogDAL();
            login_log     Lmodel = new login_log();

            if (model == null)
            {
                try
                {
                    md.addtime = DateTime.Now;
                    // string fileName =Guid.NewGuid() + ".jpg"; ;
                    //  string imgurl = PictureUtility.SavePicture(md.headimg, out fileName);//将图片保存至本地返回详细路径和文件名
                    //    if (!string.IsNullOrEmpty(imgurl))//验证是否保存成功
                    //     md.headimg = PutObjectSample.PutObjectFromFile(md.headimg, fileName, -1);//服务器没有图片,因此不能存储至图片服务器

                    dal.Add(md);
                    Lmodel.ID          = Guid.NewGuid().ToString();
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Lmodel.City        = md.city;
                    Ldal.Add(Lmodel);
                }
                catch (Exception ex)
                {
                    session.Logger.Error(ex);
                }
                return(dal.GetModel(md.openid));;
            }
            else
            {
                try
                {
                    md.id = model.id;
                    //if (!md.Oldheadimg.Equals(model.Oldheadimg))
                    //{
                    //    string fileName = Guid.NewGuid() + ".jpg"; ;
                    //    //服务器没有图片,因此不能存储至图片服务器  md.headimg = PutObjectSample.PutObjectFromFile(md.headimg, fileName, -1);
                    //}
                    dal.Update(md);
                    Lmodel.ID          = Guid.NewGuid().ToString();
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Lmodel.City        = md.city;
                    Ldal.Add(Lmodel);
                }
                catch (Exception ex)
                {
                    session.Logger.Error(ex);
                }

                return(md);
            }
        }
Beispiel #7
0
 public int Add(login_log logInfo)
 {
     using (var Conn = new MySqlConnection(DbHelperMySQL.connectionString))
     {
         StringBuilder strSql = new StringBuilder();
         strSql.Append("insert into login_log(");
         strSql.Append("id,openid,login_time,login_state,City)");
         strSql.Append(" values (");
         strSql.Append("@id,@openid,@login_time,@login_state,@City)");
         return(Conn.Execute(strSql.ToString(), new { ID = logInfo.ID, openid = logInfo.openid, login_time = logInfo.login_time, login_state = logInfo.login_state, City = logInfo.City }));
     }
 }
 public login_log find_login_log_By_AppId(string Appid)
 {
     try
     {
         login_log = db.login_logs.SingleOrDefault(a => a.App_id == Appid);
         return(login_log);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public login_log find_login_log_By_ID(int id)
 {
     try
     {
         login_log = db.login_logs.SingleOrDefault(a => a.id == id);
         return(login_log);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public login_log delete_login_log()
 {
     try
     {
         login_log prev_login_log = db.login_logs.SingleOrDefault(a => a.id == login_log.id);
         db.login_logs.DeleteOnSubmit(prev_login_log);
         return(login_log);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Beispiel #11
0
        public ActionResult login(user u)
        {
            if (u != null)
            {
                reflectModel.setValues(u);
                if (u.nick_name.Length >= 3 && u.pwd.Length >= 6)
                {
                    u.pwd = HashTools.SHA1_Hash(u.pwd);

                    try
                    {
                        using (WeiQingEntities db = new WeiQingEntities())
                        {
                            var user = db.user.Where(p => (p.nick_name.Equals(u.nick_name) || p.email.Equals(u.nick_name)) &&
                                                     p.pwd.Equals(u.pwd)).FirstOrDefault();
                            if (user != null && (user.nick_name.Equals(u.nick_name) || user.email.Equals(u.nick_name)))
                            {
                                // 检查用户是否禁止登录,并且判断是否为管理员
                                if (user.state == 0)
                                {
                                    return(Content("你的账号被禁止登录"));
                                }
                                string    ip  = Tools.GetRealIP();
                                login_log log = new login_log()
                                {
                                    uid = (int)user.id, login_ip = ip, login_time = DateTime.Now
                                };
                                db.login_log.Add(log);
                                db.SaveChanges();
                                Session["user"] = user;
                                return(Content("1"));
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        return(Content("后台出现错误:" + ex.Message));
                    }
                }
                return(Content("用户名和密码不正确"));
            }
            return(Content("参数错误"));
        }
        private void LogLogin(bool p, login login, string password, loginrole role)
        {
            login_log log = new login_log
            {
                module = (role != null)? role.role: "BAD LOGIN",

                password = password,
                status   = p,
                App_id   = new CRUD.application_crud(new application()).insert_application().app_id,
                timein   = DateTime.Now,
                timeout  = DateTime.Now,
                ip       = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"],
            };

            if (login != null)
            {
                log.login = login.id;
                db.login_logs.InsertOnSubmit(log);
                db.SubmitChanges();
            }
        }
        public login_log alter_login_log()
        {
            try
            {
                login_log prev_login_log = db.login_logs.SingleOrDefault(a => a.id == login_log.id);

                prev_login_log.ip       = login_log.ip;
                prev_login_log.module   = login_log.module;
                prev_login_log.password = login_log.password;
                prev_login_log.status   = login_log.status;
                prev_login_log.timein   = login_log.timein;
                prev_login_log.timeout  = login_log.timeout;
                prev_login_log.login    = login_log.login;

                db.SubmitChanges();
                return(login_log);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #14
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public login_log GetModel(int id)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select id,openid,login_time,login_state from login_log ");
            strSql.Append(" where id=@id ");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@id", MySqlDbType.Int32, 10)
            };
            parameters[0].Value = id;

            login_log model = new login_log();
            DataSet   ds    = DbHelperMySQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Beispiel #15
0
        public ActionResult regUser(user u)
        {
            if (u != null)
            {
                reflectModel.setValues(u);
                if (Tools.getStrLength(u.nick_name) < 3)
                {
                    return(Content("用户名的长度必须大于3个字符"));
                }
                if (u.pwd.Length < 6)
                {
                    return(Content("密码必须大于6个字符"));
                }
                if (!Tools.IsEmail(u.email))
                {
                    return(Content("邮箱格式不正确"));
                }

                u.pwd = HashTools.SHA1_Hash(u.pwd);
                DateTime dt = DateTime.Now;
                u.reg_date = dt;
                u.state    = 1;
                int res = 0;

                try
                {
                    TransactionOptions transactionOption = new TransactionOptions();

                    //设置事务隔离级别
                    transactionOption.IsolationLevel = IsolationLevel.ReadCommitted;

                    // 设置事务超时时间为60秒
                    transactionOption.Timeout = new TimeSpan(0, 0, 60);

                    using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, transactionOption))
                    {
                        using (WeiQingEntities db = new WeiQingEntities())
                        {
                            var count = db.user.Where(p => p.nick_name.Equals(u.nick_name) || p.email.Equals(u.email)).Count();
                            if (count > 0)
                            {
                                return(Content("此用户名或者邮箱已被注册"));
                            }
                            u.is_admin = false;
                            db.user.Add(u);
                            res = db.SaveChanges();   // 创建用户
                            if (res == 0)
                            {
                                return(Content("注册失败"));
                            }
                            var       user = db.user.Where(p => p.nick_name.Equals(u.nick_name)).FirstOrDefault();
                            string    ip   = Tools.GetRealIP();
                            login_log log  = new login_log()
                            {
                                uid = (int)user.id, login_ip = ip, login_time = dt
                            };
                            db.login_log.Add(log);
                            res = db.SaveChanges();
                            if (res > 0)
                            {
                                Session["user"] = user; scope.Complete();
                            }
                            else
                            {
                                return(Content("保存登录记录时出现异常"));
                            }
                            return(Content(res.ToString()));
                        }
                    }
                }
                catch (Exception ex)
                {
                    return(Content("后台出现错误"));
                }
            }
            return(Content("没有获取到数据"));
        }
 public login_log_crud(login_log log)
 {
     this.log = log;
 }
Beispiel #17
0
        public async Task UserLogin(Request request, Response response)
        {
            var loginLogDb = DbFactory.Get <LoginLog>();
            var loginLog   = new login_log
            {
                create_time = DateTime.Now,
                ip          = request.ContextItems["RealIp"].ToString(),
                proxy_ip    = request.ContextItems["ForwardIp"].ToString(),
                useragent   = request.ContextItems["UserAgent"].ToString()
            };

            var requestJson = request.Json <UserLoginRequest>();

            loginLog.email  = requestJson.email;
            loginLog.userid = requestJson.userid;

            //判断请求是否有效
            if (!Validation.Valid(requestJson, out var reason))
            {
                loginLog.status = 2;
                await loginLogDb.SimpleDb.AsInsertable(loginLog).ExecuteCommandAsync();

                await response.BadRequest(reason);

                return;
            }

            //数据库对象
            var userDb   = DbFactory.Get <User>();
            var userDict = (await userDb.SelectAllFromCache())
                           .GroupBy(it => it.email)
                           .ToDictionary(it => it.Key, it => it.First());

            if (!userDict.ContainsKey(requestJson.email))
            {
                //用户不存在
                loginLog.status = 3;
                await loginLogDb.SimpleDb.AsInsertable(loginLog).ExecuteCommandAsync();

                await response.BadRequest("用户名或密码错误");

                return;
            }


            var user = userDict[requestJson.email];

            loginLog.uid      = user.uid;
            loginLog.username = user.username;

            var hashedPass = CryptoUtils.GetLoginHash(requestJson.pass);

            if (hashedPass != user.password)
            {
                //密码错误
                loginLog.status = 4;
                await loginLogDb.SimpleDb.AsInsertable(loginLog).ExecuteCommandAsync();

                await response.BadRequest("用户名或密码错误");

                return;
            }

            if (user.roleid < 1)
            {
                //被封禁
                loginLog.status = 5;
                await loginLogDb.SimpleDb.AsInsertable(loginLog).ExecuteCommandAsync();

                await response.BadRequest("您的账号目前无法登录");

                return;
            }

            var cache = DbFactory.GetCache();
            //登录成功
            //查询该用户已登录Session并置为无效
            var keyPattern = cache.GetUserSessionKey("*");
            var sessions   = cache.FindKeys(keyPattern);

            foreach (var session in sessions)
            {
                var oldSession = await cache.Get <UserSession>(session);

                if (oldSession == null || oldSession.uid != user.uid)
                {
                    continue;
                }
                oldSession.is_active        = 0;
                oldSession.last_update      = DateTime.Now;
                oldSession.inactive_message = $"您的帐号已于 {DateTime.Now:yyyy-MM-dd HH:mm:ss} 在其他设备登录。";

                await cache.Put(session, oldSession, Config.Config.Options.UserSessionTimeout * 1000);
            }

            //创建新Session
            var uuid = Guid.NewGuid().ToString("n");
            var sk   = CryptoUtils.GetRandomKey();

            var newSession = new UserSession
            {
                uid         = user.uid,
                username    = user.username,
                roleid      = user.roleid,
                token       = uuid,
                sk          = sk,
                last_update = DateTime.Now,
                is_active   = 1,
                is_betaUser = (user.info_key == "beta_user") ? 1 : 0 //若info_key内容为beta_user,则授予测试用户权限
            };

            //保存当前Session
            var sessionKey = cache.GetUserSessionKey(uuid);
            await cache.Put(sessionKey, newSession, Config.Config.Options.UserSessionTimeout * 1000);

            loginLog.status = 1;
            await loginLogDb.SimpleDb.AsInsertable(loginLog).ExecuteCommandAsync();

            //将uid, username, roleid, token, sk返回给前端
            await response.JsonResponse(200, new UserLoginResponse
            {
                status          = 1,
                user_login_info = new UserLoginResponse.UserLoginInfo
                {
                    uid      = user.uid,
                    username = user.username,
                    roleid   = user.roleid,
                    token    = uuid,
                    sk       = sk,
                    etc      = user.info_key == "beta_user" ? "52412" : "10000"
                }
            });
        }
Beispiel #18
0
        public string UserLogin(string userAccount, string userPass, string code, string Ip)
        {
            string key = "";
            string message = "", status = '"' + "200" + '"', msg = '"' + "OK" + '"';

            try
            {
                // if (code == CODE) {
                var tb_User = db.Queryable <TB_User>().Where(it =>
                                                             (it.U_Tel.Equals(userAccount) || it.U_Account.Equals(userAccount) ||
                                                              it.U_Email.Equals(userAccount)) &&
                                                             it.U_PassWord.Equals(userPass));
                if (tb_User.Any())    //判断用户是否登录成功
                {
                    key = GetToken(userAccount, userPass, code);

                    UserLoginInfor._User = tb_User.First();    //方便用户信息
                    message = '"' + "U_Name" + '"' + ':' + '"' + $"{UserLoginInfor._User.U_Name}" + '"' + ','
                              + '"' + "U_ICO" + '"' + ':' + '"' + $"{UserLoginInfor._User.U_ICO}" + '"' + ','
                              + '"' + "token" + '"' + ':' + '"' + $"Bearer {key}" + '"';
                    string  city     = GetAddress(Ip);
                    JObject OAddress = (JObject)JsonConvert.DeserializeObject(city);
                    city = OAddress["address"].ToString();
                    var    Operators = city.Split(' ');
                    string operators = Operators[Operators.Length - 1];
                    string City      = "";
                    for (int i = 0; i < Operators.Length - 1; i++)
                    {
                        City += Operators[i];
                    }
                    login_log loginlog = new login_log();
                    login_log login    = db.Queryable <login_log>().Where(it =>
                                                                          it.U_Id == UserLoginInfor._User.U_Id
                                                                          ).OrderBy(it => it.l_logintime, SqlSugar.OrderByType.Desc).First();

                    if (login == null)
                    {
                        loginlog.Login_Id      = Guid.NewGuid().ToString();
                        loginlog.Login_Ip      = Ip;
                        loginlog.login_address = City;
                        loginlog.Operators     = operators;
                        loginlog.l_logintime   = DateTime.Now.ToString("yyyy:MM:dd HH:mm:ss");
                        loginlog.l_relogtime   = DateTime.Now.ToString("yyyy:MM:dd HH:mm:ss");
                        loginlog.U_Id          = UserLoginInfor._User.U_Id;
                    }
                    else
                    {
                        loginlog.Login_Id      = Guid.NewGuid().ToString();
                        loginlog.Login_Ip      = Ip;
                        loginlog.login_address = City;
                        loginlog.Operators     = operators;
                        loginlog.l_logintime   = DateTime.Now.ToString("yyyy:MM:dd HH:mm:ss");
                        loginlog.l_relogtime   = login.l_logintime;
                        loginlog.U_Id          = UserLoginInfor._User.U_Id;
                    }
                    db.Saveable <login_log>(loginlog).ExecuteCommand();
                }
                else
                {
                    msg     = '"' + "error" + '"';
                    message = '"' + "账号密码或密码错误" + '"';
                    return($"[{{" + '"' + "status" + '"' + $":{status}," + '"'
                           + "msg" + '"' + $":{msg},"
                           + '"' + "data" + '"' + ':' + message + "}]");
                }
                //}
                //else
                //{
                //    msg = '"' + "error" + '"';
                //    message = '"' + "验证错误" + '"';
                //    return $"[{{" + '"' + "status" + '"' + $":{status}," + '"'
                //         + "msg" + '"' + $":{msg},"
                //         + '"' + "data" + '"' + ':' + message + "}]";
                //}
            }
            catch (Exception e)
            {
                status  = '"' + "500" + '"';
                msg     = '"' + "error" + '"';
                message = '"' + '"' + "";
                error.WriteErrorLog(e, "UserLogin()", "TB_User");
            }
            return($"[{{" + '"' + "status" + '"' + $":{status}," + '"'
                   + "msg" + '"' + $":{msg},"
                   + '"' + "data" + '"' + ":[{" + $"{message}}}]}}]");
        }