public void LogLogin(bool status, string email, string ip) { IPAddress ipAddress; IPAddress.TryParse(ip, out ipAddress); // If we got an IPV6 address, then we need to ask the network for the IPV4 address // This usually only happens when the browser is on the same machine as the server. if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6) { ipAddress = System.Net.Dns.GetHostEntry(ipAddress).AddressList .First(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork); } LoginLogsModel llm = new LoginLogsModel(); llm.IPAddress = ipAddress.ToString(); llm.AccountId = GetAccountByEmail(email).Id; llm.LoginDate = DateTime.Now; switch (status) { case true: llm.Status = LoginLog.LogStatus.succeded; break; case false: llm.Status = LoginLog.LogStatus.failed; break; } var dbRsp = Repository.InsertLoginLog((LoginLog)llm); }
/// <summary> /// 数据库中记录收银人员和管理人员登录的【日志】的所有内容查询 /// </summary> /// <returns></returns> public List <LoginLogsModel> GetLoginLog() { //获取数据库中的人员的登录日志的存储过程 string procName = "GetLoginLogs"; SqlDataReader reader = SQLHelper.GetDataReader(procName, null); List <LoginLogsModel> list = new List <LoginLogsModel>(); while (reader.Read()) { LoginLogsModel logs = new LoginLogsModel(); logs.LogId = Convert.ToInt32(reader["LogId"]); if (string.IsNullOrEmpty(reader["ExitTime"].ToString())) { //加问号就不会报错 logs.ExitTime = null; } else { logs.ExitTime = Convert.ToDateTime(reader["ExitTime"]); } logs.LoginId = Convert.ToInt32(reader["LoginId"]); logs.SPName = reader["SPName"].ToString(); logs.ServerName = reader["ServerName"].ToString(); logs.LoginTime = Convert.ToDateTime(reader["LoginTime"]); list.Add(logs); } reader.Close(); return(list); }
public List <LoginLogsModel> GetLoginLogBy(DateTime starttime, DateTime endTime, string wheres, int check) { string procName = "GetLoginLogBy"; SqlParameter[] sp = { new SqlParameter("@startTime", starttime), new SqlParameter("@endTime", endTime), new SqlParameter("@where", wheres), new SqlParameter("@check", check) }; SqlDataReader reader = SQLHelper.GetDataReader(procName, sp); List <LoginLogsModel> list = new List <LoginLogsModel>(); while (reader.Read()) { LoginLogsModel logs = new LoginLogsModel(); logs.LogId = Convert.ToInt32(reader["LogId"]); if (string.IsNullOrEmpty(reader["ExitTime"].ToString())) { logs.ExitTime = null; } else { logs.ExitTime = Convert.ToDateTime(reader["ExitTime"]); } logs.LoginId = Convert.ToInt32(reader["LoginId"]); logs.SPName = reader["SPName"].ToString(); logs.ServerName = reader["ServerName"].ToString(); logs.LoginTime = Convert.ToDateTime(reader["LoginTime"]); list.Add(logs); } reader.Close(); return(list); }
/// <summary> /// 获取管理者登录的所有信息 /// </summary> /// <param name="admin">通过SysAdminsModel在窗口中拿到Id和pwd的数据:的可以查找数据库中 存储过程(SysAdminLogin存储过程名)中 管理者的具体数据</param> /// <returns></returns> public SysAdminsModel AdminLogin(SysAdminsModel admin) { //【1】根据用户账号和密码调用查询用户登录 SysAdminsModel sys = GetServer.AdminLogin(admin); //管理员登录然后状态是启用,可以登录 if (sys != null && sys.AdminStatus == 1) { //【2】写入登录日志 //管理者的登录退出也要写入到数据库的日志里面 LoginLogsModel log = new LoginLogsModel() { LoginId = sys.LoginId, SPName = sys.AdminName, //获取本地计算机名字 ServerName = Dns.GetHostName() }; //保存当前管理员登录日志的ID //通过Id获取收银员退出超市管理系统(这个结果通过日志进入时拿到当前的返回Id) sys.LoginLogId = manager.BllWriteSelesLog(log); } else { sys = null; } return(sys); }
/// <summary> /// 写入登陆者日志 /// </summary> /// <param name="objLog"></param> /// <returns></returns> public int WriteLoginLogs(LoginLogsModel objLog) { string sql = "insert into LoginLogs(LoginId,UserName,LoginComputer,LoginTime)"; sql += " values(@loginid,@username,@computer,@logintime)"; SqlParameter[] para = new SqlParameter[] { new SqlParameter("@loginid", objLog.LoginId), new SqlParameter("@username", objLog.UserName), new SqlParameter("@computer", objLog.LoginComputer), new SqlParameter("@logintime", objLog.LoginTime) }; int result = helper.ExecuteSql(sql, para); return(result); }
/// <summary> /// 日志记录成功返回本次日志ID号 /// </summary> /// <param name="loginLogs"></param> /// <returns></returns> public int WriteSelesLog(LoginLogsModel loginLogs) { string str = "WriteLog"; SqlParameter[] sp = { new SqlParameter("@LoginId", SqlDbType.Int), new SqlParameter("@SPName", SqlDbType.NVarChar,50), new SqlParameter("@ServerName", SqlDbType.NVarChar, 100) }; sp[0].Value = loginLogs.LoginId; sp[1].Value = loginLogs.SPName; sp[2].Value = loginLogs.ServerName; //int a=SQLHelper.ExecuteNonQuery(str,sp); object a = SQLHelper.ExecuteScalar(str, sp);//拿单一结果 if (a == null) { return(-1); } return(int.Parse(a.ToString())); }
public SysAdmins AdminLogin(SysAdmins admin) { //【1】根据用户账号和密码调用查询用户登录 SysAdmins sys = adminServer.AdminLogin(admin); //管理员登录然后状态是启用,可以登录 if (sys != null && sys.AdminStatus == 1) { //【写入登录日志】 LoginLogsModel login = new LoginLogsModel() { LoginId = sys.LoginId, SPName = sys.AdminName, ServerName = Dns.GetHostName() }; //保存当前管理员日志的ID sys.LoginLogId = selesServer.WriteSelesLog(login); } else { sys = null; } return(sys); }
private void btnLogin_Click(object sender, EventArgs e) { //1、数据有效性验证 #region 验证账号 if (txtLoginId.Text.Length == 0) { lblInfo.Visible = true; lblInfo.Text = "账号不能为空!"; this.txtLoginId.Focus(); //开始闪烁 fang(); return; } if (!ValidateInput.IsInteger(txtLoginId.Text.Trim())) { lblInfo.Visible = true; lblInfo.Text = "账号必须是正整数!"; this.txtLoginId.Focus(); //开始闪烁 if (th == null || !th.IsAlive) { th = new Thread(run); th.IsBackground = true; th.Start(); } return; } #endregion #region 验证密码 if (txtLoginPwd.Text.Length == 0) { lblInfo.Visible = true; lblInfo.Text = "密码不能为空!"; this.txtLoginPwd.Focus(); //开始闪烁 fang(); return; } #endregion #region 验证验证码 if (txtCode.Text.Length == 0) { lblInfo.Visible = true; lblInfo.Text = "验证码不能为空"; this.txtCode.Focus(); //开始闪烁 fang(); return; } //验证验证码 if (lblCode.Text != txtCode.Text.Trim()) { lblInfo.Visible = true; lblInfo.Text = "验证码不正确"; this.txtCode.Focus(); CreateValidation(); txtCode.Text = ""; //开始闪烁 fang(); return; } #endregion //2、提交数据库验证 //构建登陆对象 SysAdminsModel loginModel = new SysAdminsModel(); loginModel.LoginId = Convert.ToInt32(txtLoginId.Text.Trim()); loginModel.LoginPwd = EncryptHelper.EncryptByMd5(txtLoginPwd.Text.Trim()); SysAdminsManager bll = new SysAdminsManager(); SysAdminsModel loginInfo = bll.QueryLoginAccount(loginModel); //3.根据结果来判断(账号禁用,账号密码错误,账号密码不存在) if (loginInfo == null) { lblInfo.Visible = true; lblInfo.Text = "账号密码错误!"; this.txtLoginId.Focus(); //开始闪烁 fang(); return; } else if (loginInfo.IsDisable == true) { lblInfo.Visible = true; lblInfo.Text = "账号被禁用,请与管理员联系!"; this.txtLoginId.Focus(); //开始闪烁 fang(); return; } else//账号是正常的 { //1.处理后面的逻辑(1=更新登录时间) int rst = bll.UpdateLoginTime(loginInfo.LoginId); if (rst != 1) { MessageBox.Show("更新登录时间失败"); } //2.写入登录日志 LoginLogsManager logbll = new LoginLogsManager(); LoginLogsModel logmodel = new LoginLogsModel() { LoginId = loginInfo.LoginId, UserName = loginInfo.UserName, LoginComputer = Dns.GetHostName(), LoginTime = logbll.GetServerTime() }; int result = logbll.WriteLoginLogs(logmodel); if (result != 1) { MessageBox.Show("写入登录日志失败"); return; } //3.写入全局变量 Program.currentLogin = loginInfo; //4.设置窗体的状态值为ok this.DialogResult = DialogResult.OK; this.Close(); } }
/// <summary> /// 写入登陆者日志 /// </summary> /// <param name="objLog"></param> /// <returns></returns> public int WriteLoginLogs(LoginLogsModel objLog) { return(dal.WriteLoginLogs(objLog)); }
//日志:记录到日志信息 public int BllWriteSelesLog(LoginLogsModel loginLogs) { return(server.WriteSelesLog(loginLogs)); }