用于ASP.NET或IIS的MP4热链接保护



我通过将请求传递给一个通用处理程序来保护我网站上的MP4文件不受热链接的影响,该处理程序的代码取自这里:VideoStreamer Iphone/Ipad。对于每个会话,MP4文件的URL都是动态的,在MP4流式传输给访问者之前,通用处理程序会对其进行验证。

它似乎适用于桌面浏览器,但在我的Android上测试时,我无法播放视频。可能值得注意的是,我正在将我的通用处理程序路由到一个路由,如http://example.com/myroute/dynamicfilename.mp4,在我的web.config中有一个处理程序来处理对.mp4文件的所有请求。

在没有路由的情况下,播放可以在安卓手机上使用相同的代码。因此,我怀疑这与路线有关。也许我正在处理MP4文件扩展名?

有什么想法吗?是否有其他/更好/推荐的方法(可能使用context.rewrite?)或IIS中类似于httpd mod_secdownload的其他方法?

事实证明,Android(可能也是iOS)视频播放器应用程序在某个时候停止使用浏览器传递的会话。因此,使用会话的第一个请求是有效的,而视频播放器应用程序的第二个请求收到404,因为我的通用处理程序无法验证动态生成的URL。这里没有解决方案,但如果有人在未来陷入类似的困境,这可能会有所帮助。

最新更新