2013-09-10 33 views
1

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

设置屏幕将要求他们输入数据库连接字符串,所以在第一次运行时,并不知道数据库存储。

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

我应该把设置在web.config中有假的初始值:

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

而且一旦设置完成后,我可以通过改变它:

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

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

+0

你打算如何存储数据库连接字符串呢? – muratgu

+0

Web.config用于静态配置。如果您需要动态配置,则应该使用其他文件。 – rossipedia

回答

1

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

0

过去,我实施了一个自定义SettingsProvider(例子是herehere)。特别注意安全性,确保密钥被加密。样本不完美。您可以使用由Visual Studio和.NET 2.0提供的Application Settings以格式(例如xml)和您选择的位置(例如AppData)存储设置。

比让你的应用程序修改你的web.config更安全,因为做后者意味着你必须提升你的进程的权限,当你的应用程序暴露在互联网上时,这可能是相当危险的。

它还简化了备份和升级。