Пример #1
0
        public void AddErrLog(string strMsg, string strStackTrace)
        {
            VisitorInfo visitorInfo = STATClient.GetVisitorInfo();

            if (visitorInfo != null)
            {
                visitorInfo.ErrMessage = strMsg;
                visitorInfo.StackTrace = strStackTrace;
                Visitor.Add(visitorInfo);
            }
        }
Пример #2
0
        public static VisitorInfo GetVisitorInfo()
        {
            VisitorInfo result;

            if (HttpContext.Current != null)
            {
                VisitorInfo visitorInfo = new VisitorInfo();
                HttpContext.Current.Response.Expires = 0;
                NameValueCollection serverVariables = HttpContext.Current.Request.ServerVariables;
                visitorInfo.IPAddress = IPUtils.GetIP();
                string text = serverVariables["HTTP_USER_AGENT"] ?? string.Empty;
                visitorInfo.UserAgent    = text;
                visitorInfo.OPSystem     = STATClient.GetOPSystem(text);
                visitorInfo.CustomerLang = ((HttpContext.Current.Request.UserLanguages != null) ? HttpContext.Current.Request.UserLanguages[0].ToLower() : string.Empty);
                visitorInfo.Navigator    = STATClient.GetBrowser(text);
                HttpBrowserCapabilities browser = HttpContext.Current.Request.Browser;
                visitorInfo.IsMobileDevice      = browser.IsMobileDevice;
                visitorInfo.IsSupportActiveX    = browser.ActiveXControls;
                visitorInfo.IsSupportCookie     = browser.Cookies;
                visitorInfo.IsSupportJavascript = browser.JavaScript;
                if (browser.ClrVersion == null)
                {
                    visitorInfo.NETVer = "不支持";
                }
                else
                {
                    visitorInfo.NETVer = browser.ClrVersion.ToString();
                }
                visitorInfo.IsCrawler = browser.Crawler;
                visitorInfo.VPage     = HttpContext.Current.Request.Url.ToString();
                if (HttpContext.Current.Request.UrlReferrer != null)
                {
                    string text2 = HttpContext.Current.Request.UrlReferrer.ToString();
                    if (text2 != "" && text2.Substring(text2.Length - 1, 1) == "/")
                    {
                        text2 = text2.Substring(0, text2.Length - 1);
                    }
                    visitorInfo.ApproachUrl = text2;
                    string[] array = STATClient.GetSearchEngine(text2).Split(new char[]
                    {
                        '|'
                    });
                    if (array.Length == 3)
                    {
                        visitorInfo.Engine  = array[0] + "[" + array[1] + "]";
                        visitorInfo.KeyWord = array[2];
                    }
                }
                else
                {
                    visitorInfo.ApproachUrl = "手动输入地址";
                }
                if (HttpContext.Current.Request.Cookies.Count > 0)
                {
                    StringBuilder stringBuilder = new StringBuilder();
                    for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
                    {
                        if (i == HttpContext.Current.Request.Cookies.Count - 1)
                        {
                            stringBuilder.Append(HttpContext.Current.Request.Cookies[i].Name + ":" + HttpContext.Current.Request.Cookies[i].Values);
                        }
                        else
                        {
                            stringBuilder.Append(string.Concat(new object[]
                            {
                                HttpContext.Current.Request.Cookies[i].Name,
                                ":",
                                HttpContext.Current.Request.Cookies[i].Values,
                                "|"
                            }));
                        }
                    }
                    visitorInfo.CookieParameter = stringBuilder.ToString();
                }
                if (HttpContext.Current.Request.QueryString.Count > 0)
                {
                    StringBuilder stringBuilder2 = new StringBuilder();
                    for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++)
                    {
                        if (i == HttpContext.Current.Request.QueryString.Count - 1)
                        {
                            stringBuilder2.Append(HttpContext.Current.Request.QueryString.AllKeys[i] + ":" + HttpContext.Current.Request.QueryString[i]);
                        }
                        else
                        {
                            stringBuilder2.Append(HttpContext.Current.Request.QueryString.AllKeys[i] + ":" + HttpContext.Current.Request.QueryString[i] + "|");
                        }
                    }
                    visitorInfo.GETParameter = stringBuilder2.ToString();
                }
                if (HttpContext.Current.Request.Form.Count > 0)
                {
                    StringBuilder stringBuilder3 = new StringBuilder();
                    for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++)
                    {
                        string a = HttpContext.Current.Request.Form.AllKeys[i];
                        if (a != "__VIEWSTATE")
                        {
                            if (i == HttpContext.Current.Request.Form.Count - 1)
                            {
                                stringBuilder3.Append(HttpContext.Current.Request.Form.AllKeys[i] + ":" + HttpContext.Current.Request.Form[i]);
                            }
                            else
                            {
                                stringBuilder3.Append(HttpContext.Current.Request.Form.AllKeys[i] + ":" + HttpContext.Current.Request.Form[i] + "|");
                            }
                        }
                    }
                    visitorInfo.POSTParameter = stringBuilder3.ToString();
                }
                visitorInfo.ErrMessage    = string.Empty;
                visitorInfo.StackTrace    = string.Empty;
                visitorInfo.Lang          = JObject.cultureLang;
                visitorInfo.AutoTimeStamp = DateTime.Now;
                result = visitorInfo;
            }
            else
            {
                result = null;
            }
            return(result);
        }