Пример #1
0
        public EventMessage Create(MessageUserData userData, IDictionary <string, StringValues> headers, MessageAction action, MessageTarget target, params string[] description)
        {
            try
            {
                var message = new EventMessage
                {
                    Date        = DateTime.UtcNow,
                    TenantId    = userData == null?TenantManager.GetCurrentTenant().TenantId : userData.TenantId,
                    UserId      = userData == null ? AuthContext.CurrentAccount.ID           : userData.UserId,
                    Action      = action,
                    Description = description,
                    Target      = target
                };

                if (headers != null)
                {
                    var userAgent = headers.ContainsKey(userAgentHeader) ? headers[userAgentHeader].ToString() : null;
                    var forwarded = headers.ContainsKey(forwardedHeader) ? headers[forwardedHeader].ToString() : null;
                    var host      = headers.ContainsKey(hostHeader) ? headers[hostHeader].ToString() : null;
                    var referer   = headers.ContainsKey(refererHeader) ? headers[refererHeader].ToString() : null;

                    message.IP       = forwarded ?? host;
                    message.UAHeader = userAgent;
                    message.Page     = referer;
                }

                return(message);
            }
            catch (Exception ex)
            {
                log.Error(string.Format("Error while parse Http Message for \"{0}\" type of event: {1}", action, ex));
                return(null);
            }
        }
Пример #2
0
        public static EventMessage Create(MessageUserData userData, Dictionary <string, string> headers, MessageAction action, MessageTarget target, params string[] description)
        {
            try
            {
                var message = new EventMessage
                {
                    Date        = DateTime.UtcNow,
                    TenantId    = userData == null?CoreContext.TenantManager.GetCurrentTenant().TenantId : userData.TenantId,
                    UserId      = userData == null ? SecurityContext.CurrentAccount.ID                   : userData.UserId,
                    Action      = action,
                    Description = description,
                    Target      = target
                };

                if (headers != null)
                {
                    var ip        = MessageSettings.GetIP(headers);
                    var userAgent = MessageSettings.GetUAHeader(headers);
                    var referer   = MessageSettings.GetReferer(headers);

                    message.IP       = ip;
                    message.UAHeader = userAgent;
                    message.Page     = referer;
                }

                return(message);
            }
            catch (Exception ex)
            {
                log.Error(string.Format("Error while parse Http Message for \"{0}\" type of event: {1}", action, ex));
                return(null);
            }
        }
Пример #3
0
        public static EventMessage Create(HttpRequest request, MessageUserData userData, MessageAction action)
        {
            try
            {
                var message = new EventMessage
                {
                    Date     = DateTime.UtcNow,
                    TenantId = userData == null?CoreContext.TenantManager.GetCurrentTenant().TenantId : userData.TenantId,
                    UserId   = userData == null ? SecurityContext.CurrentAccount.ID : userData.UserId,
                    Action   = action,
                    Active   = true
                };

                if (request != null)
                {
                    var ip        = MessageSettings.GetIP(request);
                    var userAgent = MessageSettings.GetUAHeader(request);
                    var referer   = MessageSettings.GetReferer(request);

                    message.IP       = ip;
                    message.UAHeader = userAgent;
                    message.Page     = referer;
                }

                return(message);
            }
            catch (Exception ex)
            {
                log.Error(string.Format("Error while parse Initiator Message for \"{0}\" type of event: {1}", action, ex));
                return(null);
            }
        }
        private static void SendHeadersMessage(MessageUserData userData, Dictionary <string, string> httpHeaders, MessageAction action, MessageTarget target, params string[] description)
        {
            if (sender == null)
            {
                return;
            }

            var message = MessageFactory.Create(userData, httpHeaders, action, target, description);

            if (!MessagePolicy.Check(message))
            {
                return;
            }

            sender.Send(message);
        }
Пример #5
0
        public static EventMessage Create(MessageUserData userData, Dictionary <string, string> headers, MessageAction action, MessageTarget target, params string[] description)
        {
            try
            {
                var message = new EventMessage
                {
                    Date        = DateTime.UtcNow,
                    TenantId    = userData == null?CoreContext.TenantManager.GetCurrentTenant().TenantId : userData.TenantId,
                    UserId      = userData == null ? SecurityContext.CurrentAccount.ID                   : userData.UserId,
                    Action      = action,
                    Description = description,
                    Target      = target
                };

                if (headers != null)
                {
                    var userAgent = headers.ContainsKey(userAgentHeader) ? headers[userAgentHeader] : null;
                    var forwarded = headers.ContainsKey(forwardedHeader) ? headers[forwardedHeader] : null;
                    var host      = headers.ContainsKey(hostHeader) ? headers[hostHeader] : null;
                    var referer   = headers.ContainsKey(refererHeader) ? headers[refererHeader] : null;

                    var        uaParser = Parser.GetDefault();
                    ClientInfo clientInfo;

                    try
                    {
                        clientInfo = userAgent != null?uaParser.Parse(userAgent) : null;
                    }
                    catch (Exception)
                    {
                        clientInfo = null;
                    }

                    message.IP       = forwarded ?? host;
                    message.Browser  = GetBrowser(clientInfo);
                    message.Platform = GetPlatform(clientInfo);
                    message.Page     = referer;
                }

                return(message);
            }
            catch (Exception ex)
            {
                log.Error(string.Format("Error while parse Http Message for \"{0}\" type of event: {1}", action, ex));
                return(null);
            }
        }
Пример #6
0
        public static EventMessage Create(MessageUserData userData, Dictionary<string, string> headers, MessageAction action, params string[] description)
        {
            try
            {
                var message = new EventMessage
                    {
                        Date = DateTime.UtcNow,
                        TenantId = userData == null ? CoreContext.TenantManager.GetCurrentTenant().TenantId : userData.TenantId,
                        UserId = userData == null ? SecurityContext.CurrentAccount.ID : userData.UserId,
                        Action = action,
                        Description = description
                    };

                if (headers != null)
                {
                    var userAgent = headers.ContainsKey(userAgentHeader) ? headers[userAgentHeader] : null;
                    var forwarded = headers.ContainsKey(forwardedHeader) ? headers[forwardedHeader] : null;
                    var host = headers.ContainsKey(hostHeader) ? headers[hostHeader] : null;
                    var referer = headers.ContainsKey(refererHeader) ? headers[refererHeader] : null;

                    var uaParser = Parser.GetDefault();
                    ClientInfo clientInfo;

                    try
                    {
                        clientInfo = userAgent != null ? uaParser.Parse(userAgent) : null;
                    }
                    catch (Exception)
                    {
                        clientInfo = null;
                    }

                    message.IP = forwarded ?? host;
                    message.Browser = GetBrowser(clientInfo);
                    message.Platform = GetPlatform(clientInfo);
                    message.Page = referer;
                }

                return message;
            }
            catch (Exception ex)
            {
                log.Error(string.Format("Error while parse Http Message for \"{0}\" type of event: {1}", action, ex));
                return null;
            }
        }
Пример #7
0
        public static int SendLoginMessage(HttpRequest request, MessageUserData userData, MessageAction action)
        {
            if (sender == null)
            {
                return(0);
            }

            var message = MessageFactory.Create(request, userData, action);

            if (!MessagePolicy.Check(message))
            {
                return(0);
            }

            var id = sender.Send(message);

            return(id);
        }
 public static void Send(MessageUserData userData, Dictionary <string, string> httpHeaders, MessageAction action, MessageTarget target)
 {
     SendHeadersMessage(userData, httpHeaders, action, target);
 }
Пример #9
0
 public void Send(MessageUserData userData, IDictionary <string, StringValues> httpHeaders, MessageAction action, MessageTarget target)
 {
     SendHeadersMessage(userData, httpHeaders, action, target);
 }
Пример #10
0
 public void Send(MessageUserData userData, Dictionary <string, string> httpHeaders, MessageAction action)
 {
     SendHeadersMessage(userData, httpHeaders, action, null);
 }
Пример #11
0
        private static void SendHeadersMessage(MessageUserData userData, Dictionary<string, string> httpHeaders,
                                               MessageAction action, params string[] description)
        {
            if (sender == null) return;

            var message = MessageFactory.Create(userData, httpHeaders, action, description);
            if (!MessagePolicy.Check(message)) return;

            sender.Send(message);
        }
Пример #12
0
 public static void Send(MessageUserData userData, Dictionary<string, string> httpHeaders, MessageAction action)
 {
     SendHeadersMessage(userData, httpHeaders, action);
 }