盗链和屏蔽用户ip地址
图片防盗链发过去一个错误图片同样浪费资源。
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;
}