我正在开发一个 IIS8 网站,用户可以在其中登录并在登录后观看视频。我想使用 HTML5 提供长达 6 小时的视频<video />
。我想限制用户只能登录一次,这样他们就不能与其他人分享他们的登录凭据,这将是一个付费网站。对于静态页面(非视频),这很容易,但我不知道如何为视频做。HTML5 视频开始播放后,如何防止用户再次登录?或者,如果他再次登录,有没有办法从第一次登录中断视频播放?我很想听听想法...
谢谢大卫
我正在开发一个 IIS8 网站,用户可以在其中登录并在登录后观看视频。我想使用 HTML5 提供长达 6 小时的视频<video />
。我想限制用户只能登录一次,这样他们就不能与其他人分享他们的登录凭据,这将是一个付费网站。对于静态页面(非视频),这很容易,但我不知道如何为视频做。HTML5 视频开始播放后,如何防止用户再次登录?或者,如果他再次登录,有没有办法从第一次登录中断视频播放?我很想听听想法...
谢谢大卫
虽然我对您的框架和标准不太确定,但您是否考虑过每 X 分钟使用jQuery
并向aJax
您的服务器发送请求以验证会话是否仍处于活动状态?这是一些未经测试的 ajax 示例——只需使用 Javascript 的 setTimeout 函数每 x 分钟发送一次:
$.ajax({
url: "yourpage.asp",
type: "post",
data: "sessionId=sessionIdVal",
dataType: "json",
success: function(msg){
//Do Logic Here with msg
}
});
和文档。
祝你好运。
详细说明 sgeddes 的答案我过去使用的一个解决方案是 - 当用户登录时生成一个 GUID,该 GUID 既作为用户的 cookie 存储在查找表中......所以如果用户再次登录 GUID (和时间戳)将改变 - 每隔 n 秒让客户端轮询服务器以确保它们仍然具有正确的 GUID,如果没有停止视频,那么只有最近的登录才能继续工作
然而......这有几个问题。如果视频在连接后是单个渐进流,则没有什么可以阻止用户下载并在本地观看,如果他们想要变得非常棘手,他们可以中断轮询 javascript 并简单地停止检查。
如果您想更进一步,您可以实现一个服务器端处理程序,该处理程序在提供更多视频之前检查 cookie 令牌的有效性(类似于http://blog.offbeatmammal.com/post/2006/06/30 /Using-ASPNET-to-restrict-access-to-images.aspx)但是因为 <video> 元素最好下载足够的视频来播放而不缓冲,具体取决于它的长度和预缓冲量在检查开始时完成可能为时已晚。