Пример #1
0
        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);
        }
Пример #2
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #6
0
        /// <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()));
        }
Пример #7
0
        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);
        }
Пример #8
0
 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));
 }