Mvc创建并注册防盗链

创建CustomHandler.JpgHandler

public class JpgHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
         try
         {
             // 获取文件服务器端物理路径
             string FileName = context.Server.MapPath(context.Request.FilePath);
             // 如果UrlReferrer为空,则显示一张默认的禁止盗链的图片
             if (context.Request.UrlReferrer.Host == null)
             {
                  context.Response.ContentType = "image/JPEG";
                  context.Response.WriteFile("/error.jpg");
             }
             else
             {
                 // 如果 UrlReferrer中不包含自己站点主机域名,则显示一张默认的禁止盗链的图片
                 if ((context.Request.UrlReferrer.Host.Contains("localhost")))
                 {
                     context.Response.ContentType = "application/pdf";
                     context.Response.WriteFile(FileName);
                 }
                 else
                 {
                     context.Response.ContentType = "image/JPEG";
                     context.Response.WriteFile("/error.jpg");
                 }
             }
         }
         catch (Exception ex)
         {
            context.Response.ContentType = "image/JPEG";
            context.Response.WriteFile("/error.jpg");
         }
     }
     public bool IsReusable
     {
         get { return true; }
     }
}

  在项目中引用该编译好的dll文件,并在项目中注册该handler

 <system.webServer>
      <handlers>
        <add name="myjpghandler" path="*.jpg" verb="*" type="CustomHandler.JpgHandler, CustomHandler" />
      </handlers>
  </system.webServer>

本文来自:http://www.cnblogs.com/sssleon/p/5168051.html  

posted @ 2016-05-27 17:28  成败在我手  阅读(179)  评论(0编辑  收藏  举报