You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
374 lines
15 KiB
374 lines
15 KiB
using FangYar.BLL.TBL;
|
|
using FangYar.Common;
|
|
using FangYar.Model.TBL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Web;
|
|
|
|
namespace FangYar.WebUI.WebCommon
|
|
{
|
|
///// <summary>
|
|
///// 系统操作记录添加到系统日志
|
|
///// </summary>
|
|
//public class SysOperationLogHelp
|
|
//{
|
|
|
|
// /// <summary>
|
|
// /// 系统日志记录
|
|
// /// </summary>
|
|
// private static SysOperationLogBLL syslogBll = new SysOperationLogBLL();
|
|
|
|
// /// <summary>
|
|
// /// 设置是否记录操作日志:0、记录;其他、不记录
|
|
// /// </summary>
|
|
// public static string IsOperationLogDebug = System.Configuration.ConfigurationManager.AppSettings["IsOperationLogDebug"] + "";
|
|
|
|
|
|
// /// <summary>
|
|
// /// 用户操作日志记录
|
|
// /// </summary>
|
|
// /// <param name="context">请求信息HttpContext对象</param>
|
|
// /// <param name="logType">日志类型</param>
|
|
// /// <param name="Info_Name">信息名称</param>
|
|
// /// <param name="Info_Msg">信息内容</param>
|
|
// public static void AddSysOperationLog(HttpContext context, EnumOperationLogType logType, string Info_Name, string Info_Msg)
|
|
// {
|
|
|
|
// if (!IsOperationLogDebug.Equals("0"))
|
|
// {
|
|
// return;
|
|
// }
|
|
|
|
// //new Thread(() =>
|
|
// //{
|
|
// try
|
|
// {
|
|
|
|
// //Tbl_Sys_Operation_Log_Model addMo = GetLogMoByHttpContext(HttpContext.Current);
|
|
// Tbl_Sys_Operation_Log_Model addMo = GetLogMoByHttpContext(context);
|
|
// addMo.Info_Type = ((int)logType) + "";
|
|
// addMo.Info_Msg = Info_Msg;
|
|
// addMo.Info_Name = Info_Name;
|
|
// if (string.IsNullOrWhiteSpace(addMo.Url_Str))
|
|
// {
|
|
// string a = "";
|
|
// }
|
|
// syslogBll.Add(addMo);
|
|
// //添加到ClickHouse数据库
|
|
// //ClickHouseHelper.AddSysOperationLog(addMo);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
// {
|
|
// message = str,
|
|
// msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
// path = "SysOperationLog"
|
|
// });
|
|
|
|
// }
|
|
// //}).Start();
|
|
// }
|
|
|
|
// private static Tbl_Sys_Operation_Log_Model GetLogMoByHttpContext(HttpContext context)
|
|
// {
|
|
// Tbl_Sys_Operation_Log_Model retMo = new Tbl_Sys_Operation_Log_Model();
|
|
// try
|
|
// {
|
|
// var Request = context.Request;
|
|
|
|
// var cookUserMo = GetCookUserByHttpContext(context);
|
|
|
|
// retMo = new Tbl_Sys_Operation_Log_Model();
|
|
|
|
// retMo.ID = "";
|
|
// retMo.Info_Msg = "";
|
|
// retMo.Info_Name = "";
|
|
// retMo.createtime = "";
|
|
// retMo.Info_Type = null;
|
|
// try
|
|
// {
|
|
// retMo.Url_Form = GetFormStr(context);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext获取Form参数信息异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "SysOperationLog" });
|
|
// }
|
|
// try
|
|
// {
|
|
// retMo.User_Uid = cookUserMo.usersUid;
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext获取登录用户账号异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "SysOperationLog" });
|
|
// }
|
|
// try
|
|
// {
|
|
// retMo.Browser = Request.Browser.Browser;
|
|
// retMo.Browser_Type = Request.Browser.Type;
|
|
// retMo.System_Type = Request.Browser.Platform;
|
|
// retMo.Browser_VerSion = Request.Browser.Version;
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext获取客户端浏览器异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "SysOperationLog" });
|
|
// }
|
|
// //获取用户IC
|
|
// retMo.Client_IP = GetClientIp(context);
|
|
// //获取用户端UUID
|
|
// retMo.UUID_Str = GetUUID(context);
|
|
// try
|
|
// {
|
|
// retMo.Client_Name = Request.UserHostName;
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext获取用户IP信息异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "SysOperationLog" });
|
|
// }
|
|
// try
|
|
// {
|
|
// retMo.Url_Str = Request.Url.AbsoluteUri;
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext获取请求路径信息异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
// {
|
|
// message = str,
|
|
// msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
// path = "SysOperationLog"
|
|
// });
|
|
// }
|
|
// string Headers_Str = Request.ServerVariables["All_Http"];
|
|
// string Headers_StrHead = Headers_Str.Substring(0, Headers_Str.IndexOf(".SessionCookie="));
|
|
// string Headers_StrEnd = Headers_Str.Substring(Headers_Str.IndexOf("HTTP_HOST:"));
|
|
// Headers_Str = Headers_StrHead + Headers_StrEnd;
|
|
// retMo.Headers_Str = Headers_Str;
|
|
|
|
// string Headers_Str1 = Request.ServerVariables["All_Raw"];
|
|
// string Headers_Str1Head = Headers_Str1.Substring(0, Headers_Str1.IndexOf(".SessionCookie"));
|
|
// string Headers_Str1End = Headers_Str1.Substring(Headers_Str1.IndexOf("Host:"));
|
|
// Headers_Str1 = Headers_Str1Head + Headers_Str1End;
|
|
// retMo.Headers_Str1 = Headers_Str1;
|
|
|
|
// retMo.Action_Str = context.Request.Params["Action"] + "";
|
|
// retMo.Url_Parameter = Request.Url.Query;
|
|
// retMo.Browser_System_Str = Request.ServerVariables["HTTP_USER_AGENT"];
|
|
// retMo.Org_ID = cookUserMo.orgId;
|
|
// retMo.Org_Name = cookUserMo.orgName;
|
|
// retMo.roles = cookUserMo.roles;
|
|
// retMo.UserMobile = cookUserMo.userMobile;
|
|
// retMo.User_Name = cookUserMo.usersName;
|
|
// retMo.Post_Parameter = GetPostParam(Request);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext转换异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
// {
|
|
// message = str,
|
|
// msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
// path = "SysOperationLog"
|
|
// });
|
|
// }
|
|
// return retMo;
|
|
// }
|
|
|
|
// private static string GetPostParam(HttpRequest Request)
|
|
// {
|
|
// string postParam = ""; //post的所有参数
|
|
// try
|
|
// {
|
|
// using (System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream))
|
|
// {
|
|
// postParam = sr.ReadLine();
|
|
|
|
// }
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录获取Post参数异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
// {
|
|
// message = str,
|
|
// msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
// path = "SysOperationLog"
|
|
// });
|
|
// }
|
|
// return postParam;
|
|
// }
|
|
|
|
// /// <summary>
|
|
// /// 返回客户端IP
|
|
// /// </summary>
|
|
// /// <param name="context"></param>
|
|
// /// <returns></returns>
|
|
// private static string GetClientIp(HttpContext context)
|
|
// {
|
|
// string retStr = "";
|
|
// try
|
|
// {
|
|
|
|
// string ipStr = context.Request.ServerVariables["All_Http"];
|
|
|
|
// if (ipStr.IndexOf("HTTP_X_CLIENT_IP:") < 0)
|
|
// {
|
|
// return "未获取";
|
|
// }
|
|
// ipStr = ipStr.Substring(ipStr.IndexOf("HTTP_X_CLIENT_IP:") + 17);
|
|
// retStr = ipStr.Substring(0, ipStr.IndexOf("HTTP_"));
|
|
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext获取用户IP信息异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "SysOperationLog" });
|
|
// }
|
|
// return retStr;
|
|
// }
|
|
|
|
// /// <summary>
|
|
// /// 返回客户端UUID
|
|
// /// </summary>
|
|
// /// <param name="context"></param>
|
|
// /// <returns></returns>
|
|
// private static string GetUUID(HttpContext context)
|
|
// {
|
|
// string retStr = "";
|
|
// try
|
|
// {
|
|
|
|
// string ipStr = context.Request.ServerVariables["All_Http"];
|
|
|
|
// if (ipStr.IndexOf("HTTP_X5_UUID:") < 0)
|
|
// {
|
|
// return "未获取";
|
|
// }
|
|
// retStr = ipStr.Substring(ipStr.IndexOf("HTTP_X5_UUID:") + 13);
|
|
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录HttpContext获取客户端UUID异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "SysOperationLog" });
|
|
// }
|
|
// return retStr;
|
|
// }
|
|
|
|
// /// <summary>
|
|
// /// 获取Cook缓存信息
|
|
// /// </summary>
|
|
// /// <param name="context"></param>
|
|
// /// <returns></returns>
|
|
// private static CookUserMo GetCookUserByHttpContext(HttpContext context)
|
|
// {
|
|
// CookUserMo retMo = new CookUserMo();
|
|
// try
|
|
// {
|
|
// //if (context.Request.Cookies["kn_root_cookie"] == null)
|
|
// //{
|
|
// // return new CookUserMo() { cityId = "", deptId = "", deptName = "", orgId = "", orgName = "", roles = "", userMobile = "", usersName = "", usersUid = "" };
|
|
// //}
|
|
// //string CookStr = context.Request.Cookies["kn_root_cookie"].Value + "";
|
|
|
|
// string CookStr = context.Request.ServerVariables["All_Http"];
|
|
// if (CookStr.IndexOf("kn_root_cookie=") < 0)
|
|
// {
|
|
// return new CookUserMo() { cityId = "", deptId = "", deptName = "", orgId = "", orgName = "", roles = "", userMobile = "", usersName = "", usersUid = "" };
|
|
// }
|
|
// CookStr = CookStr.Substring(CookStr.IndexOf("kn_root_cookie=") + 15);
|
|
|
|
// CookStr = CookStr.Substring(0, CookStr.IndexOf("}") + 1);
|
|
|
|
// //CookStr = CookStr.Replace("kn_root_cookie=", "");
|
|
|
|
// retMo = JsonHelper.FromJSON<CookUserMo>(CookStr);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// retMo = new CookUserMo() { cityId = "", deptId = "", deptName = "", orgId = "", orgName = "", roles = "", userMobile = "", usersName = "", usersUid = "" };
|
|
// string str = "系统日志记录获取Cook信息异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
// {
|
|
// message = str,
|
|
// msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
// path = "SysOperationLog"
|
|
// });
|
|
// }
|
|
// return retMo;
|
|
// }
|
|
|
|
// private static string GetFormStr(HttpContext context)
|
|
// {
|
|
// string retStr = "";
|
|
// try
|
|
// {
|
|
// foreach (var item in context.Request.Params)
|
|
// {
|
|
// if (item.Equals(".SessionCookie"))
|
|
// {
|
|
// continue;
|
|
// }
|
|
// if (item.Equals("ALL_HTTP"))
|
|
// {
|
|
// continue;
|
|
// }
|
|
// if (item.Equals("ALL_RAW"))
|
|
// {
|
|
// continue;
|
|
// }
|
|
// if (item.Equals("HTTP_COOKIE"))
|
|
// {
|
|
// continue;
|
|
// }
|
|
// if (item.Equals("ASP.NET_SessionId"))
|
|
// {
|
|
// continue;
|
|
// }
|
|
// string a = "";
|
|
// if (!string.IsNullOrWhiteSpace(retStr))
|
|
// {
|
|
// retStr += "&";
|
|
// }
|
|
|
|
// // retStr += item + "=" + GetParams(context.Request.Params[item + ""] + "");
|
|
// retStr += item + "=" + context.Request.Params[item + ""];
|
|
// }
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// string str = "系统日志记录后去Form参数异常:" + ex;
|
|
// FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
// {
|
|
// message = str,
|
|
// msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
// path = "SysOperationLog"
|
|
// });
|
|
// }
|
|
// return retStr;
|
|
// }
|
|
|
|
// //private static string GetParams(string str)
|
|
// //{
|
|
// // string retStr = "";
|
|
// // try
|
|
// // {
|
|
// // // retStr = HttpContext.Current.Server.UrlDecode(str);
|
|
// // retStr = str;
|
|
// // }
|
|
// // catch (Exception e)
|
|
// // {
|
|
// // }
|
|
// // return retStr;
|
|
// //}
|
|
|
|
//}
|
|
}
|