图片防盗链

1.添加全局应用程序类(Global.asax)

  名字不要改,

2.应用开始请求

  protected void Application_BeginRequest(object sender, EventArgs e)
  {
    //原始路径
    string rawUrl = Request.RawUrl;
    //图片在images文件夹中,看看路径是否含有"/images/"
    if (rawUrl.Contains("/images/"))
    {
      //当前的Url
      Uri u1 = Request.Url;
      //上次的Url
      Uri u2 = Request.UrlReferrer;


      if (!CompareUrl(u1, u2))
      {

        //设置输出流的类型
        Response.ContentType = "image/jpeg";
        //获取图片并显示出来盗链图片
        string path = Request.MapPath("~/images/daolian.jpg");
        Response.WriteFile(path);

      }
    }

  }
/// <summary>
/// 比较两个URL
/// </summary>
/// <param name="u1">这次的URL</url>
/// <param name="u2">上次的URL</param>
/// <returns>bool</returns>
private bool CompareUrl(Uri u1, Uri u2)
{
return Uri.Compare(u1, u2, UriComponents.HostAndPort, UriFormat.SafeUnescaped, StringComparison.CurrentCultureIgnoreCase) == 0;
}

posted @ 2013-06-03 20:54  在键盘上跳舞  阅读(150)  评论(0编辑  收藏  举报