混合文件系统上的imageresizing.net(数据库驱动链接到文件系统上的数据文件)

时间:2013-09-26 16:20:28

标签: c# asp.net imageresizer virtualpathprovider asp.net-authorization

我偶然发现了ImageResizing.net的ImageResizer,我想知道如何将它与我的网站集成。我们有很多文件\图像,我们考虑向公众开放,然后我们有其他私人文件。我们将所有图像都放在网络服务器上的安全文件夹中,无法通过网址访问,我们有一个链接到这些文件的数据库。我们使用Web处理程序(ashx)将图像传递给用户(Web页面等),因为允许用户查看文件的规则比它们所属的角色要复杂得多。例如,某些图像只能向我们发送请求的用户查看(数据库保存此关系信息)。我们不将文件/图像作为Blob存储在数据库中,因为这会大大增加我们的数据库大小(使用SQLServer Express所以需要保持在10GB的限制以下)加上我认为它会对性能产生影响但我可能是错的。有了这个说什么是使用ImageResizer的最佳方法?

我读了一些关于IViertualImageProvider的内容,我想我必须使用这种格式(http://imageresizing.net/docs/extend/virtualimageprovider)编写一个插件。我是否只需在此处输入我的身份验证/授权逻辑,以确定是否已传送图像。有没有更好的办法?有人已经为这种情况构建了一个插件吗?

1 个答案:

答案 0 :(得分:0)

这称为授权。您可以在HttpApplication或IHttpModule的AuthorizeRequest事件中实现授权逻辑。

ImageResizer还提供仅适用于已处理图像的AuthorizeImage事件。如果您的图像在文件系统上或由VirtualPathProvider提供,则无需通过ImageResizer即可访问它们,因此您应该使用AuthorizeRequest方法。