【发布时间】:2010-01-26 14:58:45
【问题描述】:
有没有办法将权限提升到使用我们的 Delphi 2006 (Win32) 应用程序将文件写入网络文件夹所需的级别?
运行应用程序的用户无权在相关网络文件夹中写入(或查看)文件。
任何推荐的技术或替代建议?
【问题讨论】:
标签: windows delphi permissions
有没有办法将权限提升到使用我们的 Delphi 2006 (Win32) 应用程序将文件写入网络文件夹所需的级别?
运行应用程序的用户无权在相关网络文件夹中写入(或查看)文件。
任何推荐的技术或替代建议?
【问题讨论】:
标签: windows delphi permissions
您可以提示用户输入具有提升权限的用户的凭据,然后在写入网络共享时临时在该其他用户的登录名下操作。为此,您正在寻找LogonUser 和ImpersonateLoggedOnUser 函数。请参阅this answer。
【讨论】:
使用WNetAddConnection2 连接到 UNC 路径,您将需要使用 lpUsername 和 lpPassword 参数(向用户询问或将它们隐藏在应用程序的某个位置)。
您可以选择是否要将本地驱动程序号映射到 UNC 路径(在这种情况下,使用 nil 作为 lpLocalname 参数)。完成后,您无需指定凭据即可访问 UNC 路径。
【讨论】: