一
1.创建一个网站,网站下的Images的图片能正常显示
2.创建站点创建防盗链添加一个aspx页面插入两张图
3.然后创建第二个网站,添加aspx网页,引用第一个网站提供的图片
二
1.第二个网站盗取了第一个网站图片资源,下面通过HttpHandler解决盗链。在第一个网站中添加HttpHandler类。
public class MyHandler : IHttpHandler
{
public bool IsReusable => true;
public void ProcessRequest(HttpContext context)
{
//获取上次请求的URL
Uri lastUrl = context.Request.UrlReferrer;
//获取本次请求的URL
Uri curUrl = context.Request.Url;
//判断是否为盗链
if (lastUrl.Host != curUrl.Host || lastUrl.Port != curUrl.Port)
{
//获取“请勿盗链”警告提示图路径
string errorImagepath = context.Request.PhysicalApplicationPath + "Error/1.png";
//发送至客户端
context.Response.WriteFile(errorImagepath);
}
else
{
context.Response.WriteFile(context.Request.PhysicalPath);
}
}
}
2.然后在微博,config设置配置文件
3.效果如下
三
水印
public class handler : IHttpHandler,IRequiresSessionState
{
public bool IsReusable => false;
private Random RandomSeed = new Random();
public void ProcessRequest(HttpContext context)
{
//得到用户请求的图片
string uri = context.Request.PhysicalPath;//请求路径
Bitmap bitmap = new Bitmap(uri);//给它一个画板
//实列画布
Graphics gra = Graphics.FromImage(bitmap);
//定义水印的样式和字体,位置
gra.DrawString("xxx", new Font("楷书", 20, FontStyle.Bold), Brushes.Red, new Point(700, 800));
gra.Flush();
//给他保存
bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
context.Response.WriteFile(uri);
}