以管理员身份使用预定义的用户名和密码运行应用程序

本文关键字:密码 运行 应用程序 用户 身份 管理员 预定义 | 更新日期: 2023-09-27 18:30:14

在我的应用程序中,我有一些Save方法将数据存储在用户的硬盘上。一旦应用程序仍然可以访问、更改和删除这些文件,如何才能阻止用户访问、更改或删除这些文件?

可能的解决方案是在一个有限的用户上以管理员身份运行应用程序,该用户无权访问保存文件夹,但具有存储在应用程序中的系统管理员的预定义用户名和密码。

我已经阅读了UAC的其他主题,应用程序清单。

正如我在标题中提到的,是否可以在没有用户交互的情况下以管理员身份运行程序

第1版:我正在寻找一个适用于所有版本的windows(XP、Vista和Seven)的解决方案

以管理员身份使用预定义的用户名和密码运行应用程序

我认为您已经研究了ACL的功能,但无法使它们满足您的需求。例如,您可以设置ACL,允许任何用户创建文件,任何用户修改或删除他们创建的文件,但不能修改或删除其他用户的文件。


解决这个问题的正确方法是将应用程序分为两部分。一个是作为windows服务、按配置用户激活DCOM服务器或其他提升进程运行,另一个是以愚蠢的老用户运行。

当客户端应用程序希望执行需要提升的操作时,它会将请求传递给应用程序的提升部分。这将执行所需的任何安全检查、应用程序逻辑检查等,然后执行操作。

通过这种方式,您可以防止用户从后门进入并扰乱您的应用程序数据。然而,这并不能真正帮助他们通过前门扰乱数据。

@HarryJohnston在评论中说:

"要执行您的要求,请编写一个启动器应用程序,该应用程序使用CreateProcessWithLogonW(具有已知的管理员用户名和密码)来启动真正的应用程序。请注意,有能力的用户将能够提取管理员凭据并以管理员身份登录。Ben的答案(拆分应用程序)是正确的方法。"

这是我选择的答案。