【问题标题】:What's the best and secured way to enable winform application to access network files?使winform应用程序访问网络文件的最佳且安全的方法是什么?
【发布时间】:2016-01-24 06:42:53
【问题描述】:

我正在用 C# .Net 开发一个 Windows 窗体程序,我需要它在仅连接 5 台 PC 的无线网络上的计算机(我们将计算机命名为 SERVER_PC)上的文件夹中读取和写入文件。基本上,用户甚至不应该知道我的程序之外的文件。我的意思是他们不应该直接读取或写入文件到 SERVER_PC。只有程序才能连接到 SERVER_PC 上的该文件夹并为它们打开文件。

我是否需要为此目的创建一个家庭组?这是一种安全的处理方式吗?我可以只对我的程序授予(读、写)权限吗? 我在所有网络 PC 上运行 Windows 7

(注意:我们不想为此使用域控制器。)

非常感谢您的帮助。非常感谢

【问题讨论】:

  • 使用 ftp 访问 SERVER_PC 上与您的程序文件相关的特定文件夹

标签: c# windows winforms visual-studio


【解决方案1】:

您可以拥有一个使用 tcp 套接字传输文件的服务器应用程序和一个客户端应用程序。

服务器可以向客户端提供文件名列表。然后客户端可以请求一个或多个文件,然后服务器发送它们,然后用户可以将它们有效地保存回去,然后将它们发送回服务器应用程序,然后服务器应用程序将保存它们。

然后,您可以将文件夹的访问权限限制为运行服务器应用程序的用户。

但是,您需要处理多人处理文件的问题,除非您为每个用户分配了自己的文件夹。

如果您想要更安全,您可以加密在 tcp 端点之间发送的流。

【讨论】:

  • 您可以为此使用 tcp 套接字,也可以使用其他方式来实现在不同机器上运行的两个进程之间的通信。检查WCF。学习如何使用 tcpsocket 比学习 WCF 更容易,但之后,WCF 将为您提供一种实现复杂任务的简单方法(例如,从客户端程序调用方法 Server.SaveFile(byte[] content, string fileName) 与调用在客户端程序中运行的方法相同)
  • 当我已经拥有可以非常轻松地复制和打开文件的 Windows 库时,为什么还要使用套接字。目前我正在使用 System.IO.File.Copy 到网络文件夹,但也许我需要有关如何保护它的指导,以便只有我的程序可以使用这些文件。
  • 为了让 File.Copy 或 open 直接从用户正在使用的程序中工作,他们需要访问文件夹和文件。据我了解您的问题,您希望在用户无法访问程序外部的文件夹或文件的情况下提供文件访问权限。我能想到的最简单的方法是使用 tcp 套接字。 Gian Paolo 使用 WCF 的想法是另一种选择,但我认为学习曲线更长。
  • .NET Socket 类有一个重载的 BeginSendFile 成员方法,提供了几个选项。 msdn.microsoft.com/query/…
  • 这个问题中的一些代码可能会有所帮助。 stackoverflow.com/questions/9517491/…
猜你喜欢
  • 2010-09-24
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-14
  • 1970-01-01
相关资源
最近更新 更多