1

我正在创建一个简单的 MVC CMS,我需要对其进行首次运行配置(设置数据库和管理员用户帐户等)。

设置屏幕将要求他们提供数据库连接字符串,因此在第一次运行时,不知道数据库存储。

我如何检测到这是第一次运行应用程序,并将它们带到该设置屏幕?

我是否应该在 web.config 中设置一个初始值为 false 的设置:

<add key="SetupComplete" value="false" />

设置完成后,我可以通过以下方式进行更改:

ConfigurationManager.AppSettings.Set("SetupComplete", "True");

这种方法的缺点是,如果应用程序重新启动,配置值将默认为“false”。这个问题有什么好的解决方案?

4

2 回答 2

1

许多 PHP CMS 都在做您想做的事情,因为这是初始设置,管理员可以手动更改此值,或者您只需检查是否存在必须手动删除的文件。由于它是 IIS 应用程序,我会构建一个部署包,因此您可以在安装过程中设置初始设置,这是我认为 IIS 应用程序的常用方式。

于 2013-09-11T04:32:53.397 回答
0

过去,我实现了一个自定义SettingsProvider(一个例子在这里这里)。特别注意安全性,确保密钥被加密。样品并不完美。您可以使用 Visual Studio 和 .NET 2.0 提供的应用程序设置以您选择的格式(例如 xml)和位置(例如 AppData)存储设置。

这比允许您的应用程序修改您的 web.config 更安全一点,因为这样做意味着您必须提升进程的权限,当您的应用程序暴露在 Internet 上时这可能相当危险。

它还简化了备份和升级。

于 2013-09-11T05:28:09.590 回答