1

是否可以使用, 为将驱动器映射到我们共享WebDAV的每个用户(例如,可能是他们我们数据库中的文件)加载动态内容?WebDAV

我见过的每个 WebDAV 实现都使用虚拟目录IIS,并允许用户将网络驱动器映射到该目录,最终在两者之间同步文件/文件夹。

如果可能的话,我想做的是WebDAV让用户将他们的驱动器映射到虚拟目录,但只使用虚拟目录来映射他们的驱动器。我有一个HttpModule可以根据请求执行的设置WebDAV,所以我的想法是让HttpModule决定,根据用户,需要加载哪些文件,并从那里在他们的映射驱动器中创建虚拟文件夹结构。

由于多个用户将访问此驱动器,我实际上不想WebDAV在虚拟目录和用户的映射驱动器之间来回同步文件。我们的想法是让我们HttpModule检测用户在哪个文件夹中(从请求中),然后相应地从我们的数据库中加载文件。

这可能吗?或者有没有其他方法可以做到这一点?我意识到这可能WebDAV用于其他用途,但我不确定是否有任何其他方法可以让用户映射这样的驱动器并检测来自 Windows 资源管理器的请求。我目前在 Windows 7 上使用带有 VB.NET 的 IIS 7.5 进行测试。我最终还需要实现安全/身份验证,我只是希望首先让它在基本层面上工作,所以这是要记住的一件事。

更新:

我已经添加RequestFiltering到我的 Web.config 以不允许扩展名为“.txt”的文件,希望它们不会被复制到我的本地映射驱动器(我将一些文本文件复制到我在 IIS 中的虚拟目录中),但事实并非如此——它们总是出现在映射驱动器中。看起来它RequestFiltering实际上并没有影响显示在我的映射驱动器中的文件,而是不允许我打开它们。

有没有办法WebDAV启用映射驱动器到共享,但不允许WebDAV显示/复制映射驱动器中的文件?我希望它以两种方式工作,即在将文件复制到映射驱动器时,不应将它们复制到IIS. 我想拦截这些请求并处理将文件复制到不同位置(或复制到数据库中)。

4

1 回答 1

0

我采用的解决方案是从@User629926 上面提供的链接下载项目并遵循该项目的逻辑。该项目清楚地演示了如何使用HttpModules&HttpHandlers拦截WebDAV请求,然后动态构建响应,使我可以在 Windows 资源管理器中显示后端 SQL 数据。

于 2012-10-22T13:15:57.907 回答