图片防盗链
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;
}