Example #1
0
        /// <summary>
        /// 操作日志
        /// </summary>
        /// <param name="httpRequestBase"></param>
        public OperationLogHandler(HttpRequestBase httpRequestBase)
            : base("OperateLogToDatabase")
        {
            var request = HttpContext.Current.Request;

            log = new OperateLog()
            {
                CreateTime           = DateTime.Now,
                ServerHost           = String.Format("{0}【{1}】", IpBrowserUtil.GetServerHost(), IpBrowserUtil.GetServerHostIp()),
                ClientHost           = String.Format("{0}", IpBrowserUtil.GetClientIp()),
                RequestContentLength = httpRequestBase.ContentLength,
                RequestType          = httpRequestBase.RequestType,
                UserAgent            = httpRequestBase.UserAgent
            };

            var inputStream  = request.InputStream;
            var streamReader = new StreamReader(inputStream);
            var requestData  = HttpUtility.UrlDecode(streamReader.ReadToEnd());

            log.RequestData = requestData;
            if (httpRequestBase.Url != null)
            {
                log.Url = httpRequestBase.Url.ToString();
            }
            if (httpRequestBase.UrlReferrer != null)
            {
                log.UrlReferrer = httpRequestBase.UrlReferrer.ToString();
            }
        }
        /// <summary>
        ///     操作日志
        /// </summary>
        public OperationLogHandler(HttpRequest httpRequest) : base("OperateLogToDatabase")
        {
            var request = HttpContexts.Current.Request;

            log = new OperateLog()
            {
                Id                   = CombUtil.NewComb(),
                CreateTime           = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                ServerHost           = $"{IpBrowserUtil.GetServerHost()}【{IpBrowserUtil.GetServerHostIp()}】",
                ClientHost           = $"{IpBrowserUtil.GetClientIp()}",
                RequestContentLength = httpRequest.ContentLength == null ? 0 : (int)httpRequest.ContentLength,
                RequestType          = request.Method,
                UserAgent            = request.Headers[HeaderNames.UserAgent]
            };

            if (request.Method.ToLower() == "post")
            {
                var Result = httpRequest.Form;
                log.RequestData = httpRequest.Form.ToJson();
            }
            else
            {
                log.RequestData = HttpUtility.UrlDecode(new StreamReader(httpRequest.Body).ReadToEnd());
            }
            log.Url = new StringBuilder()
                      .Append(request.Scheme)
                      .Append("://")
                      .Append(request.Host)
                      .Append(request.PathBase)
                      .Append(request.Path)
                      .Append(request.QueryString)
                      .ToString();
            log.UrlReferrer = httpRequest.Headers[HeaderNames.Referer];
        }
        /// <summary>
        ///     构造函数
        /// </summary>
        /// <param name="exception"></param>
        public ExceptionLogHandler(Exception exception) : base("ExceptionLogToDatabase")
        {
            PrincipalUser principalUser = new PrincipalUser();
            var           current       = HttpContexts.Current;

            if (current != null)
            {
                principalUser = AuthenticationExtension.Current();
            }
            if (principalUser == null)
            {
                principalUser = new PrincipalUser()
                {
                    Name   = "匿名用户",
                    UserId = Guid.Empty
                };
            }
            log = new ExceptionLog()
            {
                ExceptionLogId = CombUtil.NewComb().ToString(),
                CreateUserCode = principalUser.Code,
                CreateUserId   = principalUser.UserId.ToString(),
                CreateUserName = principalUser.Name,
                ServerHost     = String.Format("{0}【{1}】", IpBrowserUtil.GetServerHost(), IpBrowserUtil.GetServerHostIp()),
                ClientHost     = String.Format("{0}", IpBrowserUtil.GetClientIp()),
                Runtime        = "Web",
                CreateTime     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                Message        = exception.Message,
                StackTrace     = exception.StackTrace,
                ExceptionType  = exception.GetType().FullName,
                ClientAddress  = IpBrowserUtil.GetAddressByApi()
            };
            //获取服务器信息
            var request = HttpContexts.Current.Request;

            log.RequestUrl     = string.Format("{0} ", request.Path);
            log.HttpMethod     = request.Method;
            log.UserAgent      = request.Headers["user-agent"];
            log.InnerException = exception.InnerException != null?GetExceptionFullMessage(exception.InnerException) : "";

            if (request?.HasFormContentType ?? request.HasFormContentType)
            {
                log.RequestData = request?.Form?.ToJson();
            }
            else
            {
                if (request.Body.CanSeek)
                {
                    log.RequestData = HttpUtility.UrlDecode(new StreamReader(request?.Body).ReadToEnd());
                }
            }
        }
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="principalUser">登录用户</param>
 /// <param name="loginLogId">登录用户</param>
 /// <param name="accessor">登录用户</param>
 public LoginLogHandler(PrincipalUser principalUser,
                        IHttpContextAccessor accessor,
                        Guid loginLogId) : base("SystemLoginLog")
 {
     Log = new LoginLog
     {
         LoginLogId      = loginLogId,
         RemoteIp        = IpBrowserUtil.GetRemoteIp(accessor),
         RemoteIpAddress = IpBrowserUtil.GetRemoteIpAddress(accessor),
         CreateUserId    = principalUser.UserId,
         CreateUserName  = principalUser.Name,
         CreateTime      = DateTime.Now,
         CreateUserCode  = principalUser.Code,
         LoginTime       = DateTime.Now
     };
 }
Example #5
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="exception">错误信息</param>
        public ExceptionLogHandler(Exception exception)
            : base("ExceptionLogToDatabase")
        {
            PrincipalUser principalUser = new PrincipalUser
            {
                Name   = "匿名用户",
                UserId = Guid.Empty
            };
            var current = HttpContext.Current;

            if (current != null)
            {
                principalUser = FormAuthenticationExtension.Current(HttpContext.Current.Request);
            }
            if (principalUser == null)
            {
                principalUser = new PrincipalUser()
                {
                    Name   = "匿名用户",
                    UserId = Guid.Empty
                };
            }
            log = new ExceptionLog
            {
                CreateTime     = DateTime.Now,
                Message        = exception.Message,
                StackTrace     = exception.StackTrace,
                ExceptionType  = exception.GetType().FullName,
                CreateUserCode = principalUser.Code,
                CreateUserName = principalUser.Name,
                ServerHost     = String.Format("{0}【{1}】", IpBrowserUtil.GetServerHost(), IpBrowserUtil.GetServerHostIp()),
                ClientHost     = String.Format("{0}", IpBrowserUtil.GetClientIp()),
                Runtime        = "Web"
            };
            //获取服务器信息
            var request = HttpContext.Current.Request;

            log.RequestUrl = string.Format("{0} ", request.Url);
            log.HttpMethod = request.HttpMethod;
            log.UserAgent  = request.UserAgent;
            var inputStream  = request.InputStream;
            var streamReader = new StreamReader(inputStream);
            var requestData  = HttpUtility.UrlDecode(streamReader.ReadToEnd());

            log.RequestData    = requestData;
            log.InnerException = exception.InnerException != null?GetExceptionFullMessage(exception.InnerException) : "";
        }
        /// <summary>
        ///     操作日志
        /// </summary>
        public OperationLogHandler(HttpRequest httpRequest) : base("OperateLogToDatabase")
        {
            var request = HttpContexts.Current.Request;

            log = new OperateLog()
            {
                Id                   = CombUtil.NewComb(),
                CreateTime           = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                ServerHost           = String.Format("{0}【{1}】", IpBrowserUtil.GetServerHost(), IpBrowserUtil.GetServerHostIp()),
                ClientHost           = String.Format("{0}", IpBrowserUtil.GetClientIp()),
                RequestContentLength = httpRequest.ContentLength == null ? 0 : (int)httpRequest.ContentLength,
                RequestType          = request.Method,
                UserAgent            = request.Headers[HeaderNames.UserAgent]
            };

            if (request?.HasFormContentType ?? request.HasFormContentType)
            {
                log.RequestData = request?.Form?.ToJson();
            }
            else
            {
                if (request.Body.CanSeek)
                {
                    log.RequestData = HttpUtility.UrlDecode(new StreamReader(request?.Body).ReadToEnd());
                }
                //if (request?.Body != null)
                //{
                //    log.RequestData = HttpUtility.UrlDecode(new StreamReader(request?.Body).ReadToEnd());
                //}
                //else if (request?.Form != null)
                //{
                //    log.RequestData = request?.Form?.ToJson();
                //}
            }

            log.Url = new StringBuilder()
                      .Append(request.Scheme)
                      .Append("://")
                      .Append(request.Host)
                      .Append(request.PathBase)
                      .Append(request.Path)
                      .Append(request.QueryString)
                      .ToString();
            log.UrlReferrer = httpRequest.Headers[HeaderNames.Referer];
        }
Example #7
0
 /// <summary>
 /// 操作日志
 /// </summary>
 public OperationLogHandler(IHttpContextAccessor accessor,
                            HttpRequest request,
                            PrincipalUser principalUser) : base("SystemOperationLog")
 {
     Log = new OperateLog
     {
         OperationLogId       = Guid.NewGuid(),
         CreateTime           = DateTime.Now,
         RemoteIp             = IpBrowserUtil.GetRemoteIp(accessor),
         RequestContentLength = request.ContentLength,
         RequestType          = request.Method,
         RequestData          = RequestData(request),
         Url            = request.Path.Value,
         CreateUserName = principalUser.Name,
         CreateUserCode = principalUser.Code,
         CreateUserId   = principalUser.UserId,
     };
 }
Example #8
0
 public LoginLogHandler(string userId, string code, string userName, int loginStatus) : base("LoginLogToDatabase")
 {
     log =
         new LoginLog
     {
         Id             = CombUtil.NewComb(),
         CreateUserId   = userId,
         CreateUserCode = code ?? "",
         ServerHost     = $"{IpBrowserUtil.GetServerHost()}【{IpBrowserUtil.GetServerHostIp()}】",
         ClientHost     = $"{IpBrowserUtil.GetClientIp()}",
         UserAgent      = IpBrowserUtil.GetBrowser(),
         OsVersion      = IpBrowserUtil.GetOsVersion(),
         LoginTime      = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
         IpAddressName  = IpBrowserUtil.GetAddressByApi(),
         CreateTime     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
         CreateUserName = userName,
         LoginStatus    = loginStatus
     };
 }
 public LoginLogHandler(string UserId, string Code, string UserName, int LoginStatus) : base("LoginLogToDatabase")
 {
     log =
         new LoginLog
     {
         LoginLogId     = CombUtil.NewComb().ToString(),
         CreateUserId   = UserId,
         CreateUserCode = Code ?? "",
         ServerHost     = String.Format("{0}【{1}】", IpBrowserUtil.GetServerHost(), IpBrowserUtil.GetServerHostIp()),
         ClientHost     = String.Format("{0}", IpBrowserUtil.GetClientIp()),
         UserAgent      = IpBrowserUtil.GetBrowser(),
         OsVersion      = IpBrowserUtil.GetOsVersion(),
         LoginTime      = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
         IpAddressName  = IpBrowserUtil.GetAddressByApi(),
         CreateTime     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
         CreateUserName = UserName,
         LoginStatus    = LoginStatus
     };
 }
Example #10
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="loginLogId">登录Id</param>
        public LoginLogHandler(Guid loginLogId)
            : base("LoginLogToDatabase")
        {
            PrincipalUser principalUser = new PrincipalUser
            {
                Name   = "匿名用户",
                UserId = Guid.Empty
            };
            var current = HttpContext.Current;

            if (current != null)
            {
                principalUser = FormAuthenticationExtension.Current(HttpContext.Current.Request);
            }
            if (principalUser == null)
            {
                principalUser = new PrincipalUser()
                {
                    Name   = "匿名用户",
                    UserId = Guid.Empty
                };
            }
            var request = HttpContext.Current.Request;

            log = new LoginLog
            {
                LoginLogId     = loginLogId,
                CreateUserId   = principalUser.UserId,
                CreateUserCode = principalUser.Code ?? "",
                CreateUserName = principalUser.Name,
                ServerHost     = String.Format("{0}【{1}】", IpBrowserUtil.GetServerHost(), IpBrowserUtil.GetServerHostIp()),
                ClientHost     = String.Format("{0}", IpBrowserUtil.GetClientIp()),
                UserAgent      = request.Browser.Browser + "【" + request.Browser.Version + "】",
                OsVersion      = IpBrowserUtil.GetOsVersion(),
                LoginTime      = DateTime.Now,
                IpAddressName  = IpBrowserUtil.GetAddressByApi()
            };
            //根据提供的api接口获取登录物理地址:http://whois.pconline.com.cn/
        }
Example #11
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="exception">错误信息</param>
        /// <param name="accessor">Ip信息</param>
        /// <param name="principalUser"></param>
        public ExceptionLogHandler(
            Exception exception,
            IHttpContextAccessor accessor,
            PrincipalUser principalUser) : base("SystemExceptionLog")
        { //获取服务器信息
            var request = accessor.HttpContext.Request;

            Log = new ExceptionLog
            {
                CreateTime      = DateTime.Now,
                Message         = exception.Message,
                StackTrace      = exception.StackTrace,
                RemoteIp        = IpBrowserUtil.GetRemoteIp(accessor),
                RemoteIpAddress = IpBrowserUtil.GetRemoteIpAddress(accessor),
                CreateUserCode  = principalUser.Code,
                CreateUserName  = principalUser.Name,
                RequestUrl      = request.Path.Value,
                HttpMethod      = request.Method,
                RequestData     = RequestData(request),
                InnerException  = exception.InnerException != null?GetExceptionFullMessage(exception.InnerException) : ""
            };
        }