【问题标题】:Load dynamic content based on user's credentials?根据用户的凭据加载动态内容?
【发布时间】:2012-10-12 15:11:15
【问题描述】:

是否可以使用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 中的虚拟目录中。我想拦截这些请求并处理将文件复制到其他位置(或复制到数据库中)。

【问题讨论】:

  • 这看起来正是我需要的!谢谢你。我遇到了一些 IIS 问题并发布了另一个问题:stackoverflow.com/questions/12917230/… 一旦我的 IIS 问题弄清楚了,我就可以测试这个解决方案了。
  • 不管我之前的 IIS 问题如何,这都是我需要做的。我已经从你的链接下载了这个项目,并开始查看代码,找出我需要的东西。如果您将该链接作为答案发布,我会接受。谢谢!!

标签: http windows-7 iis-7.5 webdav httpmodule


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多