gpt4 book ai didi

C# - 允许网络文件夹访问而不启用用户通过 Windows 资源管理器访问

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:45 24 4
gpt4 key购买 nike

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

无论我使用什么方法,当应用程序访问该文件夹时,用户都可以通过 Window->Explorer 浏览到该文件夹​​,即使用户没有(更重要的是,不应该)有凭据访问该网络文件夹。

有没有一种方法可以让我的应用程序通过网络访问文件夹,而无需通过 Windows->Explorer 为当前用户启用对同一文件夹的访问权限?

应用程序关闭后,用户将无法再访问网络文件夹(尽管这需要一分钟左右)。

谢谢,

最佳答案

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

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

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

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

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

关于C# - 允许网络文件夹访问而不启用用户通过 Windows 资源管理器访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com