我正在创建一个简单的MVC CMS,我需要首次运行配置(设置数据库和管理员用户帐户等)。
设置屏幕将询问他们数据库连接字符串,因此在第一次运行时,不知道数据库存储。
我如何检测到这是第一次运行应用程序,并将它们带到该设置屏幕?
我是否应该在web.config中设置初始值为false的设置:
<add key="SetupComplete" value="false" />
设置完成后,我可以通过以下方式进行更改:
ConfigurationManager.AppSettings.Set("SetupComplete", "True");
此方法的缺点是,如果重新启动应用程序,配置值将默认为“false”。什么是这个问题的好方法?
答案 0 :(得分:1)
许多PHP CMS都在做你想要做的事情,因为初始设置可以是管理员手动更改此值,或者只是检查是否存在必须手动删除的文件。 由于它是IIS应用程序,我将构建一个部署包,因此您可以在安装过程中设置初始设置,这是我认为的IIS应用程序的常用方法。
答案 1 :(得分:0)
过去,我实施了自定义SettingsProvider(例如here和here)。特别注意安全性,确保密钥加密。样品并不完美。您可以使用Visual Studio和.NET 2.0提供的Application Settings以格式(例如xml)和您选择的位置(例如AppData)存储设置。
比允许您的应用程序修改您的web.config更安全,因为执行后者意味着您必须提升流程的权限,当您的应用程序在互联网上公开时,这可能相当危险。
它还简化了备份和升级。