我试图从asp.net应用程序中安全地提供图像/视频,并努力寻找一种有效的方法。
我正在使用带有自定义身份验证的WebAPI。用户在登录时收到令牌,然后将其与Authorization http标头中的每个请求一起提供。这样,我可以确保只有登录的用户才能访问安全的API函数。
但是,IIS还为这些用户提供图像和视频,并且也必须对其进行保护。用户还将具有访问这些文件的不同权限。
我尝试了几种方法:
我可以创建一个自定义的托管处理程序,在检查Authorization
标头后将为这些文件提供服务,但是我认为这样做效率不高,因为IIS在提供文件方面会做得更好,利用缓存等。
我尝试创建和注册新的HttpModule
,它将检查BeginRequest
中的标头,即使在虚拟目录下也可以正常工作。
但是,我使用应用程序将应用程序池分开以提供文件和API。如果文件存储在子应用程序(不是虚拟文件夹)中,则请求没有通过我的HttpModule传递(我可能会在每个应用程序中注册一个,但这会使事情变得非常复杂,因为我将无法使用父应用程序进行检查令牌放在一个地方)
从子应用程序请求文件时,是否可以分析父应用程序中的标头?
我完全忘记了这一点吗,在使用自定义身份验证时,有没有一种更简单的方法来保护IIS提供的静态文件?我不必通过自定义标头传递令牌。如果需要的话,我可以通过cookie甚至url参数(当然只有ssl)做到这一点。
非常感谢!