C# 视频文件下载问题

C# 视频文件下载问题,c#,asp.net,.net,silverlight,visual-studio-2008,C#,Asp.net,.net,Silverlight,Visual Studio 2008,我使用VSTS 2008+C#+.Net 3.5+Silverlight 3.0+ASP.Net在浏览器中开发Silverlight应用程序(视频媒体播放器),功能简单,只需使用MediaElement播放远程视频文件 远程服务器是Windows server 2008+IIS 7.0+IIS媒体比特率限制控制 由于可以发现请求媒体URL(例如,从流量嗅探器),我想知道如何防止直接从URL下载?i、 e.我希望最终用户在浏览器中使用我的Silverlight media player应用程序来播

我使用VSTS 2008+C#+.Net 3.5+Silverlight 3.0+ASP.Net在浏览器中开发Silverlight应用程序(视频媒体播放器),功能简单,只需使用MediaElement播放远程视频文件

远程服务器是Windows server 2008+IIS 7.0+IIS媒体比特率限制控制

由于可以发现请求媒体URL(例如,从流量嗅探器),我想知道如何防止直接从URL下载?i、 e.我希望最终用户在浏览器中使用我的Silverlight media player应用程序来播放文件,防止他们直接下载到本地。是否有简单快捷的解决方案或参考代码/文件

  • 使用来验证/授权您的用户
  • 将视频放入一个文件夹,其中web.config阻止未经身份验证的内容访问

  • 如果我没有弄错的话(说实话,这是一个机会,因为我从未尝试过这种特殊的场景)。。。这将保护您的视频内容,同时允许授权用户通过silverlight访问它。

    Joel的上述建议可能有意义。特别是如果Silverlight托管web应用程序运行在以特定身份运行的应用程序池中(即“svcMyVideoApp”)。然后,您可以将其设置为只有此身份才能访问内容文件夹的位置。将所有其他内容请求设置为拒绝(除了您自己的:)

    如果我没弄错的话。。。如果设置正确,IIS 7的媒体服务甚至不应该提供原始文件,而应该提供未经处理的原始“aspx”页面


    几个月前我才玩过这个,但是当我安装IIS7的媒体插件时,它不提供原始媒体文件,我只能通过silverlight接口访问它们。我使用Expression Studio创建了我的silverlight viewer页面,并将其编码为“平滑流”。

    我可能在这里抓住了救命稻草,但如何使用HTTP处理程序拦截对媒体URL的请求:当HTTP处理程序遇到请求时,它会检查请求中是否存在唯一的HTTP标头-这可以硬编码到media player应用程序中,以便URL请求附带相应的安全标头-除非存在HTTP标头,否则所有响应都会被阻止。我知道这里没有代码细节,但这是一个相同的想法。

    一个简单的方法是添加一个处理程序来捕获请求,如@pb所说。我不知道发送标题是否正确。一个简单的方法就是检查请求是否有推荐人

    String.IsNullOrEmpty(context.Request.ServerVariables[“HTTP\u REFERER”])


    或者,您需要进行身份验证,并随请求发送身份验证cookie。

    我认为他对通过提供用户名pasword来验证用户不感兴趣。他的问题很简单。普通网页具有silverlight应用程序。应用程序从某个xyz位置请求视频资源。它可能是其根目录下的子文件夹。他希望用户阻止直接访问它。由于silverlight应用程序从客户端请求它,因此您不能将它放在某些app_数据或bin文件夹下。他感兴趣的是授权来自silverlight应用程序的请求。因为它只是一个客户端,就像其他客户端一样,他可以让它使用身份验证服务登录,并使用silverlight应用程序的所有用户共享的已知用户名和密码。这样,如果用户试图通过URL直接访问它,他将被拒绝媒体URL是如何形成的?它是直接指向文件夹中媒体文件的URL吗?或者您正在使用某种HTTP处理程序来提供媒体文件?我不知道这是否会对您有所帮助,但Microsoft已将用于奥运会的媒体框架开源: