我需要屏蔽一些歌曲的外部URL,用户可以从浏览器中重现它们。由于URL在服务器之外,我不能将它们(我认为是)作为友好的URL
现在有类似这样的东西:
<audio controls="controls">
<source src="http://X.X.X.X/music/12345pd?so=/stream" type="audio/ogg" />
</audio>如果用户在浏览器中查看源代码,他应该看不到URL,或者在任何情况下,他都必须看到这样的内容:
<audio controls="controls">
<source src="http://myweb/Rock" type="audio/ogg" />
</audio>我不关心解决方案是jquery还是javascript ...或者制造另一种繁殖方法。
发布于 2018-11-17 04:24:53
我是那些支持@charlietfl评论的人之一,但是你可以这样做:
Random rnd = new Random();
string value = rnd.Next(int.MaxValue).ToString()
Session[trackid] = value;
<audio controls="controls">
<source src="http://myweb/Play/trackid=@Session[trackid]&value=@value" type="audio/ogg" />
</audio>然后在播放页面中:
[HttpGet]
public IActionResult Play([FromUri] string trackid, [FromUri] string value)
{
if(Session[trackid] == value)
{
byte[] b = System.IO.File.ReadAllBytes(trackid + ".ogg");
Random rnd = new Random();
Session[trackid] = rnd.Next(int.MaxValue).ToString();
return File(b, "audio/ogg");
}
return Content("");
}这将使您的链接只在页面加载时工作一次,如果用户复制该链接,它将不起作用。
https://stackoverflow.com/questions/53344508
复制相似问题