Esempio n. 1
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                context.Response.AddHeader("P3P", "CP=\"CAO PSA OUR\"");
                //初始化用户标识
                var uid = context.Request.Cookies.Get("_ubvi") == null?HashMd5(Guid.NewGuid().ToString()) : Convert.ToInt32(context.Request.Cookies.Get("_ubvi").Value);

                context.Response.Cookies.Add(new HttpCookie("_ubvi", uid.ToString())
                {
                    Expires = DateTime.Now.AddYears(2)
                });
                var expTime = DateTime.Compare(DateTime.Now.AddMinutes(30).Date, DateTime.Now.Date) == 0
                    ? DateTime.Now.AddMinutes(30)
                    : DateTime.Now.Date.AddDays(1);

                //初始化会话标识
                var sid = SessionId == null?HashMd5(Guid.NewGuid().ToString()) : Convert.ToInt32(SessionId);

                context.Response.Cookies.Add(new HttpCookie("_ubso", sid.ToString())
                {
                    Expires = expTime
                });
                context.Response.Cookies.Add(new HttpCookie("_ubsc", sid.ToString())
                {
                    Expires = DateTime.MinValue
                });

                if (context.Request.QueryString["t"] == "v")
                {
                    PageView pv = new PageView()
                    {
                        Time         = DateTime.Now,
                        Uid          = uid,
                        Sid          = sid,
                        Url          = Url == null ? string.Empty : FomartUrl(Url).Replace("\t", " "),
                        Ip           = ClientIp,
                        Vid          = (context.Request.QueryString["vid"] ?? string.Empty).Replace("\t", " "),
                        Title        = (context.Request.QueryString["title"] ?? string.Empty).Replace("\t", " "),
                        RefUrl       = RefUrl == null ? string.Empty : FomartUrl(RefUrl).Replace("\t", " "),
                        User         = (context.Request.QueryString["user"] ?? string.Empty).Replace("\t", " "),
                        UserAgent    = (context.Request.UserAgent ?? string.Empty).Replace("\t", " "),
                        ScreenHeight = (context.Request.QueryString["sh"] ?? string.Empty).Replace("\t", " "),
                        ScreenWidth  = (context.Request.QueryString["sw"] ?? string.Empty).Replace("\t", " "),
                        ColorDepth   = (context.Request.QueryString["cd"] ?? string.Empty).Replace("\t", " "),
                        Language     = (context.Request.QueryString["lang"] ?? string.Empty).Replace("\t", " "),
                        Os           = (context.Request.QueryString["os"] ?? string.Empty).Replace("\t", " "),
                        Cookie       = (context.Request.QueryString["cookie"] ?? string.Empty).Replace("\t", " "),
                        Rid          =
                            Convert.ToInt64(
                                (string.IsNullOrWhiteSpace(context.Request.QueryString["rid"])
                                    ? "0"
                                    : context.Request.QueryString["rid"]).Replace("\t", " ")),
                        Did =
                            Convert.ToInt64(
                                (string.IsNullOrWhiteSpace(context.Request.QueryString["did"])
                                    ? "0"
                                    : context.Request.QueryString["did"]).Replace("\t", " ")),
                        SourceId =
                            Convert.ToInt64(
                                (string.IsNullOrWhiteSpace(context.Request.QueryString["sourceid"])
                                    ? "0"
                                    : context.Request.QueryString["sourceid"]).Replace("\t", " "))
                    };
                    MessageQuery.Send("pv", JsonConvert.SerializeObject(pv));
                }
                else if (context.Request.QueryString["t"] == "e")
                {
                    Event e = new Event()
                    {
                        Time          = DateTime.Now,
                        Uid           = uid,
                        Sid           = sid,
                        Url           = EventUrl == null ? string.Empty : FomartUrl(EventUrl).Replace("\t", " "),
                        Vid           = (context.Request.QueryString["vid"] ?? string.Empty).Replace("\t", " "),
                        Eid           = Guid.NewGuid().ToString(),
                        EventCategory = (context.Request.QueryString["category"] ?? string.Empty).Replace("\t", " "),
                        EventAction   = (context.Request.QueryString["action"] ?? string.Empty).Replace("\t", " "),
                        EventLabel    = (context.Request.QueryString["label"] ?? string.Empty).Replace("\t", " "),
                        EventValue    = (context.Request.QueryString["value"] ?? string.Empty).Replace("\t", " "),
                        EventNodeId   = (context.Request.QueryString["nodeid"] ?? string.Empty).Replace("\t", " ")
                    };
                    MessageQuery.Send("event", JsonConvert.SerializeObject(e));
                }
                context.Response.Write("ok");
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message + "\n" + ex.Source + "\n" + ex.TargetSite);
                context.Response.Write(ex.Message + "\n" + ex.Source + "\n" + ex.TargetSite);
            }
        }