多年来,Windows XP(32 位)是我的开发桌面(个人项目)。我开发了许多爱好项目并将其作为开源分发,并且从不担心或烦恼在 Vista 中检查它(我只使用了一周的 Vista)。但是我的用户没有一个对我在 Vista 中的应用程序有太多抱怨。
现在我已经迁移到 Windows 7 64 位操作系统 (RTM)。我正在使用 Visual Studio 2008。我正在开发一个计划出售的应用程序。
我正在使用 SQLite DB 进行数据存储,一切都很顺利,直到我决定在我的笔记本电脑中安装我的第一个版本。繁荣!应用程序没有按预期工作。我发现即使我是管理员用户,该应用程序也无法写入数据库(它说只读)。
注意:在 Windows 7 中,即使登录用户具有管理员权限,它也会提示确认某个进程(有时甚至在驱动器之间复制粘贴)是否需要管理员权限。不确定这是否是新的。忽略这是否是旧的。
当我以“以管理员身份运行”运行应用程序时,它运行良好。
app.manifest 文件具有以下设置。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
我了解我可以将其更改为以下任一
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
我的问题是如果我将设置更改为“requireAdministrator”会影响没有管理员权限的普通用户吗?
如何使我的数据库对普通用户可写?
此设置将如何影响 Windows XP 用户?
什么是让每个人都可以毫无问题地更新数据库的最佳配置?
这是我第一次面临这样的安全问题。有什么建议吗?
注意:我将在每个可能的操作系统中测试这个应用程序。我在 Vista 32 位操作系统(管理员用户)中运行了一个测试,它运行良好。但是我对 Windows 7 的体验让我感到困惑。