コード例 #1
0
        /// <summary>
        /// 判断是否在白名单内,支持通配符 ****
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public bool CheckWhiteList(string url)
        {
            List <Urlobj> WhiteList = _cache.Cof_GetICaching <List <Urlobj> >("WhiteList", () => Appsettings.app <Urlobj>("WhiteList"), 10);

            if (!WhiteList.Cof_CheckAvailable())
            {
                return(false);
            }
            foreach (var Urlitem in WhiteList)
            {
                if (Urlitem.url.Equals(url, StringComparison.OrdinalIgnoreCase))
                {
                    return(true);
                }

                if (Urlitem.url.IndexOf("****") > 0)
                {
                    string UrlitemP = Urlitem.url.Replace("****", "");
                    if (Regex.IsMatch(url, UrlitemP, RegexOptions.IgnoreCase))
                    {
                        return(true);
                    }
                    if (url.Length >= UrlitemP.Length && UrlitemP.ToLower() == url.Substring(0, UrlitemP.Length).ToLower())
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }