图片防盗链发过去一个错误图片同样浪费资源。 protected void Application_BeginRequest(object sender, EventArgs e) { var Request = HttpContext.Current.Request; if (Request.Url.PathAndQuery.StartsWith("/domDemo2/images/mm/"))//防止美女时钟的图片盗链 { //判断是否盗链 if (Request.UrlReferrer == null || !IsSameHost(Request.UrlReferrer, Request.Url)) { HttpContext.Current.Response.Write("请勿直接访问图片,请在美女时钟页面中访问!"); HttpContext.Current.Response.End(); } } } /// <summary> /// 判断uri1和uri2是否是在同一台主机上 /// </summary> /// <param name="uri1"></param> /// <param name="uri2"></param> /// <returns></returns> private static bool IsSameHost(Uri uri1, Uri uri2) { return Uri.Compare(uri1, uri2, UriComponents.Host, UriFormat.SafeUnescaped, StringComparison.CurrentCultureIgnoreCase) == 0; }
过滤器
过滤器图和url重写原理