예제 #1
0
        /// <summary>
        /// 获得干扰码字符串
        /// </summary>
        /// <returns>干扰码字符串</returns>
        public static string GetJammer()
        {
            ///干扰码组成(10 位随机字符 + 网站域名 + 10位随机字符)
            Discuz.Cache.DNTCache cache = Discuz.Cache.DNTCache.GetCacheService();
            string str = cache.RetrieveObject("/UI/Jammer") as string;

            if (str == null)
            {
                Random        rdm1 = new Random(unchecked ((int)DateTime.Now.Ticks));
                StringBuilder sb   = new StringBuilder();
                for (int i = 0; i < 10; i++)
                {
                    sb.Append(Convert.ToChar(rdm1.Next(1, 256)));
                }
                sb.Append(HttpContext.Current.Request.Url.Authority);
                for (int i = 0; i < 10; i++)
                {
                    sb.Append(Convert.ToChar(rdm1.Next(1, 256)));
                }
                str = sb.ToString();
                str = Utils.HtmlEncode(str);

                if (sb.Length > 0)
                {
                    sb.Remove(0, sb.Length);
                }

                sb.Append("<span style=\"display:none;font-size:0px\">");
                sb.Append(str);
                sb.Append("</span>");
                str = sb.ToString();
                Discuz.Cache.ICacheStrategy ics = new ForumCacheStrategy();
                ics.TimeOut = 720;
                cache.LoadCacheStrategy(ics);
                cache.AddObject("/UI/Jammer", str);
                cache.LoadDefaultCacheStrategy();

                //cache.AddObject("/UI/Jammer", str);
            }

            return(str);
        }