/// <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); }
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")); }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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); } }
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); } }
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); } }
/// <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); } }
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; }
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" } }); }
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}}}]}}]"); }