【问题标题】:Creating Network Drive创建网络驱动器
【发布时间】:2012-11-26 17:28:36
【问题描述】:

我需要帮助满足以下要求。

我想创建一个桌面应用程序,该应用程序在我的本地计算机上创建网络驱动器。当用户点击网络驱动器时,它会询问用户名和密码。用户名和密码将通过 Web 服务与数据库进行核对。

网络中的文档将根据存储在数据库中的权限进行过滤。例如,在服务器上,所有文档存储在单个文件夹中,不同用户的权限存储在数据库中。 User1 可以读取 5 个文档,User2 可以读取 10 个文档。所以不同文件的访问是根据用户权限来的。

以上是可能的。请建议我一些与此相关的链接。

请建议我需要学习什么。
谢谢和问候
果冻

【问题讨论】:

  • 您的意思是映射驱动器吗?
  • 微软有一款产品可以为您提供所需的内容,并在处理策略驱动的文档时更加灵活。产品名称为 Active Directory 权限管理系统。有了这个你不需要创建一个虚拟驱动器检查这个sghaida.com/ad-rms-protecting-a-document-programmatically

标签: asp.net vb.net c#-4.0 c#-3.0 c#-to-vb.net


【解决方案1】:

与询问用户和密码有关的部分很容易。您可以使用easyhook 库连接到 CreateFileW 和 CreateFileA,检查此link,至于创建虚拟驱动器,您可以使用此library 进行操作。希望对你有所帮助

【讨论】:

  • 感谢您的回复,但请澄清一点。我们可以根据数据库过滤文档吗?我们将整个文档存储在同一位置。有关哪个用户访问哪个文档的信息存储在数据库中。当我们为用户创建网络驱动器时,我必须只显示他有权访问的文档。当用户拖放网络驱动器中的任何文档时,我们在数据库中保存条目。我只是想知道这是否可能使用 c#。我以前没有做过这种工作。
  • 确定可以,但问题是没有直接的方法可以做到这一点你需要一个虚拟驱动器作为组件(dokan Lib)为你提供创建自定义的所有底层方法文件系统。所以是的,它可以实现,但它需要大量代码和一些系统挂钩来进行文件操作。
【解决方案2】:

为权限集创建数据库表:例如

创建表文件权限 ( Id_User 整数, 密码 varchar(100), 文件名 Varchar(1000) 读取权限 char(1), 可写字符(1), 可编辑字符(1) )

创建一个windows服务,它会做以下事情: 1. 使用 id_user 和 FileName 从 FilePermission 表中获取值 2. 如果假设它具有只读访问权限(ReadRights == 1),则通过 Process exe 启动 Window 应用程序。

我希望这将有助于继续。

【讨论】:

    猜你喜欢
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    相关资源
    最近更新 更多