通过密匙验证反盗链(以mp3为例)
1:建立Handler.cs文件
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
/// <summary>
/// Handler 的摘要说明
/// </summary>
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string key = context.Request.QueryString.ToString();
string filename =MD5(Common.GetIp() + "123456);
if (!key.Equals(filename))
{
return;
}
else
{
context.Response.Expires = 0;
context.Response.Clear();
context.Response.ContentType = "audio/mpeg3";
context.Response.WriteFile(context.Request.PhysicalPath);
context.Response.End();
}
}
public bool IsReusable
{
get
{
return true;
}
}
}
2:播放音频的代码加入
string filename = MD5(Common.GetIp() + "123456");
music = 路径 + "伤心泪 陈星.mp3?" + filename;
生成如下:
<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject" width="396" height="45" id="player" >
<param name="autoStart" value="-1"/>
<param name="url" value="http://www.ddd.com/伤心泪 陈星.mp3?30B668A5F6E3246CA4EA9EC829529FE6" />
<param name="balance" value="0"/>
<param name="currentPosition" value="0"/>
<param name="currentMarker" value="0"/>
<param name="enableContextMenu" value="true"/>
<param name="enableErrorDialogs" value="false"/>
<param name="enabled" value="true"/>
<param name="fullScreen" value="false"/>
<param name="invokeURLs" value="false"/>
<param name="mute" value="false"/>
<param name="playCount" value="1"/>
<param name="DisplaySize" value="2"/>
<param name="rate" value="1"/>
<param name="uiMode" value="full"/>
<param name="volume" value="90"/>
</object>
3:配置IIS,对IIS的asp.net处理内容进行过滤,对.mp3文件指定同aspx相同的dll
4:web.config中加入
<httpHandlers>
<add verb="*" path="*.mp3" type="Handler,App_Code"/>
</httpHandlers>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2009-06-01 DES的建立过程
2009-06-01 C# 显示占用内存
2009-06-01 控制C#编的程序内存的占用