代码改变世界

管道模型图片防盗链简单实现

2019-07-04 16:10  NONONONONOA  阅读(253)  评论(0编辑  收藏  举报

webconfig 集成配置采用hander注入

MyHanders代码实现

 this.IsReusable = true;
            var httpRequest = context.Request;
            var urlReferrer = httpRequest.UrlReferrer;
            if (urlReferrer == null || string.IsNullOrEmpty(urlReferrer?.ToString()))
            {
                context.Response.ContentType = "image/jpeg";
                context.Response.WriteFile("~/image/404.jpg");
            }
            else
            {
                if (urlReferrer.Host.Contains("localhost"))
                {
                    string urlPath = httpRequest.AppRelativeCurrentExecutionFilePath;
                    string urlPathValues = context.Server.MapPath(urlPath);
                    if (System.IO.File.Exists(urlPathValues))
                    {
                        context.Response.ContentType = "image/jpeg";
                        context.Response.WriteFile(httpRequest.AppRelativeCurrentExecutionFilePath);
                    }
                    else
                    {
                        context.Response.ContentType = "image/jpeg";
                        context.Response.WriteFile("~/image/404.jpg");
                    }
                }
            }
View Code