屏蔽或隐藏音乐流中的网址

时间:2018-11-16 19:52:54

标签: javascript c# asp.net webforms

我需要屏蔽某些歌曲的外部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还是其他复制方法。

1 个答案:

答案 0 :(得分:0)

我是支持@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("");
}

这将使您的链接在页面加载时只能工作一次,并且如果用户复制了链接,则将无法工作。