예제 #1
0
 public int UpdateSecretInfoLog(SecretInfoLog query)
 {
     try
     {
         return _secretlogDao.UpdateSecretInfoLog(query);
     }
     catch (Exception ex)
     {
         throw new Exception("SecretInfoLogMgr-->UpdateSecretInfoLog-->" + ex.Message, ex);
     }
 }
예제 #2
0
 public List<SecretInfoLog> GetMaxCreateLog(SecretInfoLog query)
 {
     try
     {
         return _secretlogDao.GetMaxCreateLog(query);
     }
     catch (Exception ex)
     {
         throw new Exception("SecretInfoLogMgr-->GetMaxCreateLog-->" + ex.Message, ex);
     }
 }
예제 #3
0
        public DataTable GetSecretInfoLog(SecretInfoLog query, out int totalCount)
        {
            try
            {
                DataTable _dt = _secretlogDao.GetSecretInfoLog(query, out totalCount);

                ParametersrcDao _parameterDao = new ParametersrcDao(connStr);
                List<Parametersrc> parameterList = _parameterDao.QueryParametersrcByTypes("secret_type");
                _dt.Columns.Add("type_name");
                foreach (DataRow q in _dt.Rows)
                {
                    var alist = parameterList.Find(m => m.ParameterType == "secret_type" && m.ParameterCode == q["type"].ToString());
                    if (alist != null)
                    {
                        q["type_name"] = alist.parameterName;
                    }
                }
                return _dt;
            }
            catch (Exception ex)
            {
                throw new Exception("SecretInfoLogMgr-->GetSecretInfoLog-->" + ex.Message, ex);
            }
        }
예제 #4
0
        /// <summary>
        /// 誰在什麼時候通過哪個頁面訪問了哪筆機敏資料
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase SaveSecretLog()
        {

            string json = "{success:false,isconti:false,ispower:false,pwd_status:\"" + 0 + "\"}";
            try
            {
                _secretLogMgr = new SecretInfoLogMgr(mySqlConnectionString);

                SecretInfoLog query = new SecretInfoLog();
                //誰
                query.user_id = Convert.ToUInt32((System.Web.HttpContext.Current.Session["caller"] as Caller).user_id.ToString());
                query.ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString());
                //在哪個時候
                query.createdate = DateTime.Now;
                //訪問了哪個頁面
                if (!string.IsNullOrEmpty(Request.Params["urlRecord"]))
                {
                    query.url = Request.Params["urlRecord"].ToString();
                }
                if (!string.IsNullOrEmpty(Request.Params["secretType"]))
                {
                    query.type = Convert.ToInt32(Request.Params["secretType"].ToString());
                }
                //哪筆機敏資料
                if (!string.IsNullOrEmpty(Request.Params["ralatedId"]))
                {
                    query.related_id = Convert.ToInt32(Request.Params["ralatedId"].ToString());
                }
                sasMgr = new SecretAccountSetMgr(mySqlConnectionString);
                SecretAccountSet querysas = new SecretAccountSet();
                querysas.user_id = query.user_id;
                querysas.ipfrom = query.ipfrom;
                querysas.status = -1;
                List<SecretAccountSet> store = sasMgr.GetSecretSetList(querysas);//獲得用戶的密保信息
                if (store.Count > 0)//該賬號具有機敏權限
                {
                    if ((store[0].secret_count < store[0].secret_limit) && store[0].status == 1)//該賬號查詢次數未達極限
                    {
                        if (_secretLogMgr.InsertSecretInfoLog(query) > 0)//查詢記錄保存成功
                        {
                            store[0].secret_count = store[0].secret_count + 1;
                            store[0].updatedate = DateTime.Now;
                            sasMgr.Update(store[0]);
                            //判斷是否具有權限
                            json = "{success:true,isconti:true,ispower:true,pwd_status:\"" + store[0].pwd_status + "\"}";//正常進行
                        }
                    }
                    else if ((store[0].secret_count >= store[0].secret_limit) && store[0].status == 1)//極限值訪問
                    {
                        store[0].status = 0;
                        store[0].updatedate = DateTime.Now;
                        sasMgr.Update(store[0]);
                        //判斷是否具有權限
                        json = "{success:true,isconti:false,ispower:true,pwd_status:\"" + store[0].pwd_status + "\"}";//已達極限
                    }
                    else if ((store[0].secret_count < store[0].secret_limit) && store[0].status == 0)
                    {//達極限
                        json = "{success:true,isconti:false,ispower:false,pwd_status:\"" + store[0].pwd_status + "\"}";//沒有賬號

                    }
                    else
                    {
                        json = "{success:true,isconti:false,ispower:true,pwd_status:\"" + store[0].pwd_status + "\"}";//已達極限
                    }
                }
                else
                {
                    json = "{success:true,isconti:false,ispower:false,pwd_status:\"" + 0 + "\"}";//沒有賬號
                }

            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
예제 #5
0
        public HttpResponseBase GetSecretInfoLog()
        {
            List<SecretInfoLog> store = new List<SecretInfoLog>();
            string json = string.Empty;
            int totalCount = 0;
            try
            {
                _secretLogMgr = new SecretInfoLogMgr(mySqlConnectionString);

                SecretInfoLog query = new SecretInfoLog();
                query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");

                if (!string.IsNullOrEmpty(Request.Params["limit"]))
                {
                    query.Limit = Convert.ToInt32(Request.Params["limit"]);
                }
                if (!string.IsNullOrEmpty(Request.Params["user_id"]))
                {
                    query.user_id = uint.Parse(Request.Params["user_id"]);
                }
                query.user_email = Request.Params["login_mail"];
                query.ipfrom = Request.Params["login_ipfrom"];
                if (!string.IsNullOrEmpty(Request.Params["start_date"]))
                {
                    query.date_one = Convert.ToDateTime(Request.Params["start_date"]);
                }
                if (!string.IsNullOrEmpty(Request.Params["end"]))
                {
                    query.date_two = Convert.ToDateTime(Request.Params["end"]);
                }
                if (!string.IsNullOrEmpty(Request.Params["sumtotal"]))
                {
                    query.sumtotal = int.Parse(Request.Params["sumtotal"]);
                }
                if (!string.IsNullOrEmpty(Request.Params["is_count"]))
                {
                    int is_count = int.Parse(Request.Params["is_count"]);
                    if (is_count == 1)
                    {
                        if (!string.IsNullOrEmpty(Request.Params["ismail"]))
                        {
                            query.ismail = int.Parse(Request.Params["ismail"]);
                        }
                        if (!string.IsNullOrEmpty(Request.Params["countClass"]))
                        {
                            query.countClass = int.Parse(Request.Params["countClass"]);
                        }
                    }
                    else
                    {
                        query.ismail = -1;
                        query.countClass = -1;
                    }
                }
                if (!string.IsNullOrEmpty(Request.Params["type"]))
                {
                    query.type = int.Parse(Request.Params["type"]);
                }


                DataTable DT = _secretLogMgr.GetSecretInfoLog(query, out totalCount);
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
                json = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(DT, Formatting.Indented, timeConverter) + "}";//返回json數據
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
                json = "{success:false,totalCount:0,data:[]}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
예제 #6
0
        public HttpResponseBase GetSecretLog()
        {
            string json = string.Empty;
            try
            {
                _secretLogMgr = new SecretInfoLogMgr(mySqlConnectionString);
                SecretInfoLog query = new SecretInfoLog();
                query.user_id = Convert.ToUInt32((System.Web.HttpContext.Current.Session["caller"] as Caller).user_id.ToString());
                query.ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString());
                List<SecretInfoLog> store = _secretLogMgr.GetSecretInfoLog(query);//first是輸入密碼最近的
                if (store.Count != 0)
                {
                    DateTime dtNow = DateTime.Now.AddMinutes(-5);
                    if (dtNow.CompareTo(Convert.ToDateTime(store[0].input_pwd_date)) >= 0)
                    {
                        json = "{success:true,data:true}";//超出密保時間,需輸入密碼
                    }
                    else
                    {
                        json = "{success:true,data:false}";//未超出密保時間,則不需輸入密碼
                    }
                }
                else
                {
                    json = "{success:true,data:true}";//超出密保時間,需輸入密碼
                }


            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
                json = "{success:false,data:true}";//異常
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
예제 #7
0
        public DataTable GetSecretInfoLog(SecretInfoLog query, out int totalCount)
        {
            StringBuilder sql = new StringBuilder();
            StringBuilder sbSql = new StringBuilder();
            StringBuilder sbCountSql = new StringBuilder();
            StringBuilder sbSqlCondi = new StringBuilder();

            totalCount = 0;
            sbSql.Append("SELECT count(sl.user_id) as countIp,log_id,sl.user_id,mu.user_email,sl.createdate,ipfrom,url,sl.input_pwd_date ");
            sbSql.Append(",sl.type, sl.related_id,'' as related_name ");

            sbCountSql.Append("SELECT log_id,sl.user_id,mu.user_email,sl.createdate,ipfrom,url,sl.input_pwd_date ");
            sbCountSql.Append(",sl.type, sl.related_id,'' as related_name ");

            sbSqlCondi.Append(" FROM secret_info_log as sl ");
            sbSqlCondi.Append(" LEFT JOIN manage_user as mu ON  mu.user_id=sl.user_id");

            sbSqlCondi.Append(" WHERE 1=1 ");
            if (!string.IsNullOrEmpty(query.user_email))
            {
                sbSqlCondi.AppendFormat(" and mu.user_email like N'%{0}%'", query.user_email);
            }

            if (!string.IsNullOrEmpty(query.ipfrom))
            {
                sbSqlCondi.AppendFormat(" and ipfrom like N'%{0}%' ", query.ipfrom);
            }
            if (query.type != 0)
            {
                sbSqlCondi.AppendFormat(" and sl.type ={0}", query.type);
            }
            if (query.user_id != 0)
            {
                sbSqlCondi.AppendFormat(" and sl.user_id ={0}", query.user_id);
            }
            if (query.type != 0 && query.type != -1)
            {
                sbSqlCondi.AppendFormat(" and sl.type ={0}", query.type);
            }

            if (query.date_one != DateTime.MinValue && query.date_two != DateTime.MinValue)
            {
                sbSqlCondi.AppendFormat(" and sl.createdate between '{0}' and '{1}' ", Common.CommonFunction.DateTimeToString(query.date_one), Common.CommonFunction.DateTimeToString(query.date_two));
            }
            if (query.countClass == 2)
            {
                if (query.date_one != DateTime.MinValue && query.date_two != DateTime.MinValue)
                {
                    sbSqlCondi.AppendFormat(" and sl.input_pwd_date between '{0}' and '{1}' ", Common.CommonFunction.DateTimeToString(query.date_one), Common.CommonFunction.DateTimeToString(query.date_two));
                }
                sbSqlCondi.AppendFormat(" and  NOT ISNULL(sl.input_pwd_date) and sl.input_pwd_date!='0001-01-01 00:00:00'  ");

            }
            if (query.ismail == 0)
            {
                sbSqlCondi.Append(" GROUP BY ipfrom,sl.user_id,type ");
            }
            if (query.ismail == 1)
            {
                sbSqlCondi.Append(" GROUP BY  sl.user_id,type ");
            }
            if (query.ismail == 2)
            {
                sbSqlCondi.Append(" GROUP BY  ipfrom,type ");
            }

            if (query.sumtotal != 0)
            {
                if (query.ismail == 1 || query.ismail == 0)
                {
                    sbSqlCondi.AppendFormat(@" HAVING COUNT(sl.user_id)>= {0} ", query.sumtotal);
                }
                else if (query.ismail == 2)
                {
                    sbSqlCondi.AppendFormat(@" HAVING COUNT(ipfrom)>= {0} ", query.sumtotal);
                }
            }
            sbSqlCondi.Append(" ORDER BY log_id DESC");
            try
            {
                if (query.IsPage)
                {
                    DataTable dt = _access.getDataTable("select sl.log_id as totalCount  " + sbSqlCondi.ToString());
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        totalCount = dt.Rows.Count;
                    }
                    sbSqlCondi.AppendFormat(" limit {0},{1} ", query.Start, query.Limit);
                }
                if (query.ismail != -1 && query.countClass != -1)
                {
                    sql.Append(sbSql.ToString() + " " + sbSqlCondi.ToString());
                }
                else
                {
                    sql.Append(sbCountSql.ToString() + " " + sbSqlCondi.ToString());
                }
                return _access.getDataTable(sql.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception("SecretInfoLogDao-->GetSecretInfoLog-->" + ex.Message + sql.ToString(), ex);
            }

        }
예제 #8
0
 public int UpdateSecretInfoLog(SecretInfoLog query)
 {
     StringBuilder sql = new StringBuilder();
     sql.AppendFormat(@"set sql_safe_updates = 0; UPDATE secret_info_log SET input_pwd_date='{0}'", Common.CommonFunction.DateTimeToString(query.input_pwd_date));
     sql.AppendFormat(@" WHERE log_id ='{0}'; set sql_safe_updates = 1;", query.log_id);
     try
     {
         return _access.execCommand(sql.ToString());
     }
     catch (Exception ex)
     {
         throw new Exception("SecretInfoLogDao-->UpdateSecretInfoLog" + ex.Message + sql.ToString(), ex);
     }
 }
예제 #9
0
 public int InsertSecretInfoLog(SecretInfoLog query)
 {
     StringBuilder sql = new StringBuilder();
     sql.AppendFormat(@"INSERT INTO secret_info_log(user_id,createdate,ipfrom,url,input_pwd_date,type,related_id )");
     sql.AppendFormat(@" VALUES('{0}','{1}','{2}','{3}','{4}',", query.user_id, Common.CommonFunction.DateTimeToString(query.createdate), query.ipfrom, query.url, Common.CommonFunction.DateTimeToString(query.input_pwd_date));
     sql.AppendFormat(@" '{0}','{1}' );", query.type, query.related_id);
     try
     {
         return _access.execCommand(sql.ToString());
     }
     catch (Exception ex)
     {
         throw new Exception("SecretInfoLogDao-->InsertSecretInfoLog" + ex.Message + sql.ToString(), ex);
     }
 }
예제 #10
0
 public List<SecretInfoLog> GetMaxCreateLog(SecretInfoLog query)
 {
     StringBuilder sbSql = new StringBuilder();
     StringBuilder sbSqlCondi = new StringBuilder();
     try
     {
         sbSql.Append("SELECT log_id,sl.user_id,sl.createdate,ipfrom,url,input_pwd_date");
         sbSql.Append(",sl.type,sl.related_id ");
         sbSqlCondi.Append(" FROM secret_info_log as sl ");
         sbSqlCondi.Append(" WHERE 1=1 ");
         if (query.user_id != 0)
         {
             sbSqlCondi.AppendFormat(" and sl.user_id = '{0}'", query.user_id);
         }
         if (!string.IsNullOrEmpty(query.ipfrom))
         {
             sbSqlCondi.AppendFormat(" and sl.ipfrom='{0}'", query.ipfrom);
         }
         sbSqlCondi.Append(" order by sl.createdate desc,sl.log_id desc ");//非常重要,不可更改
         sbSql.Append(sbSqlCondi.ToString());
         return _access.getDataTableForObj<SecretInfoLog>(sbSql.ToString());
     }
     catch (Exception ex)
     {
         throw new Exception("SecretInfoLogDao-->GetSecretInfoLog(SecretInfoLog query)-->" + ex.Message + sbSql.ToString(), ex);
     }
 }