如何使用ASP.NET防盗链
2010-09-01 15:09
246 查看
防盗链技术可以有效的解决网站访问量不大,但压力比较大的问题。现在以.jpg文件为例,在asp.net里如何实现防盗链技术。
新建一个asp.net网站,添加两个图片文件:right.jpg,error.jpg,right.jpg为本站显示的正确的图片,error.jpg为其他网站访问时的错误图片。
Default.aspx放置如下代码:
<asp:Image ID="Image1" runat="server" Height="179px" ImageUrl="~/right.jpg" Width="197px" />
新建Handler.cs类,代码如下:
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.Expires = 0;
context.Response.Clear();
context.Response.ContentType = "image/jpg";
if (context.Request.UrlReferrer.Host == "localhost")
{
context.Response.WriteFile(context.Request.PhysicalPath);
context.Response.End();
}
else
{
context.Response.WriteFile(context.Request.PhysicalApplicationPath+"error.jpg");
context.Response.End();
}
}
public bool IsReusable {
get {
return true;
}
}
}
在web.config的节点中添加以下代码:
<add verb="*" path="*.jpg" type="Handler"/>
调试该程序,图片将显示正常的图片。
将代码 if (context.Request.UrlReferrer.Host == "localhost")中的"localhost"给为其他字符,调试程序,将显现error.jpg
这样就达到了我们所说的图片防盗链技术了。
现在来说下如何在IIS中也显现这种效果。
选择网站->右键点击属性->点击虚拟目录->配置->映射->添加
按如图所示添加,可执行文件选择:
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll
这样你的网站也实现了防盗链技术。
新建一个asp.net网站,添加两个图片文件:right.jpg,error.jpg,right.jpg为本站显示的正确的图片,error.jpg为其他网站访问时的错误图片。
Default.aspx放置如下代码:
<asp:Image ID="Image1" runat="server" Height="179px" ImageUrl="~/right.jpg" Width="197px" />
新建Handler.cs类,代码如下:
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.Expires = 0;
context.Response.Clear();
context.Response.ContentType = "image/jpg";
if (context.Request.UrlReferrer.Host == "localhost")
{
context.Response.WriteFile(context.Request.PhysicalPath);
context.Response.End();
}
else
{
context.Response.WriteFile(context.Request.PhysicalApplicationPath+"error.jpg");
context.Response.End();
}
}
public bool IsReusable {
get {
return true;
}
}
}
在web.config的节点中添加以下代码:
<add verb="*" path="*.jpg" type="Handler"/>
调试该程序,图片将显示正常的图片。
将代码 if (context.Request.UrlReferrer.Host == "localhost")中的"localhost"给为其他字符,调试程序,将显现error.jpg
这样就达到了我们所说的图片防盗链技术了。
现在来说下如何在IIS中也显现这种效果。
选择网站->右键点击属性->点击虚拟目录->配置->映射->添加
按如图所示添加,可执行文件选择:
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll
这样你的网站也实现了防盗链技术。
相关文章推荐
- 如何循环并通过使用 ASP.NET 和 VisualC # .NET 检查 DataGrid 列中 CheckBox 控件值
- 如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串
- (转)ASP.NET AJAX :如何使用 UpdatePanel
- FCKeditor如何在ASP.NET中使用
- ASP.NET如何使用web服务的会话状态
- ASP.NET 如何有效的防止资源被盗(防盗链下载)
- 【ASP.NET】如何使用类创建公共函数,在不同ASP.NET页面间重复调用
- 如何使用jQuery向asp.net Mvc传递复杂json数据
- 如何在ASP.NET页面中使用异步任务(PageAsyncTask)
- ASP.NET项目开发中日期控件DatePicker如何使用
- 如何在asp.net中使用FreeTextBox控件
- 如何在ASP.NET 2.0中使用Web Parts
- ASP.NET - 如何:使用自定义函数对 ASP.NET 服务器控件进行验证
- 如何使用,ASP.Net,将Word,转换为,HTML文件,教程实例
- 傻瓜教程:asp.net(c#) 如何使用log4Net
- Asp.net MVC: BindingHelperExtension的UpdateFrom如何使用?
- ASP.net 使用母版页的页面如何使用css
- 如何同一时间一个帐号只有一个用户使用?(asp.net)
- 使用asp.net 2.0的CreateUserwizard控件如何向自己的数据表中添加数据
- 如何在ASP.NET中使用JavaScript脚本