c# -允许网络文件夹访问,而无需启用用户通过Windows资源管理器访问

本文关键字:访问 启用 用户 资源管理器 Windows 许网络 网络 文件夹 | 更新日期: 2023-09-27 18:12:49

我有一个应用程序,需要对用户没有(也不应该)访问的网络文件夹进行读/写访问。我可以使用几种不同的方法访问文件夹,包括网络凭据通过系统。网和WNetAddConnection2通过DllImport("mpr.dll")

无论我使用什么方法,当应用程序访问文件夹时,用户都能够通过windows ->资源管理器浏览到该文件夹,即使用户没有(更重要的是,不应该)有访问该网络文件夹的凭据。

是否有一种方法,我可以允许网络访问文件夹为我的应用程序,而不启用访问同一文件夹为当前用户通过Windows->资源管理器?

一旦应用程序关闭,用户就不能再访问网络文件夹(尽管这需要一分钟左右)。

谢谢,

c# -允许网络文件夹访问,而无需启用用户通过Windows资源管理器访问

如果要使程序具有与当前登录的用户不同的访问权限,则必须通过与当前登录的用户不同的凭据运行。

有几种方法可以实现这一点,但没有一种特别容易。

您可以允许程序通过且仅通过以管理员身份运行选项运行,要求管理员每次需要运行程序时启动该程序。

你可以写一个程序通过Process来启动你的程序。通过ProcessStartInfo参数启动和设置用户。只有当你的程序知道所需帐户的用户名和密码时,这才会起作用,并且可能存在安全风险,因为这可以在没有适当混淆的情况下被反编译和读取。

下一个选项是创建并安装一个windows服务,该服务通过某种形式的IPC提供程序所需的读/写功能,例如WCF服务。这将允许您将服务设置为以管理员身份启动和操作,而程序本身能够使用用户凭据运行。