有没有一种方法可以在运行时在Asp.Net应用程序中将连接字符串添加到ConfigurationManager返回的ConnectionStringCollection中?

我尝试了以下操作,但被告知配置文件为只读。

ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings(params));

在运行时还有另一种方法吗?我知道在设计时可以将连接字符串添加到web.config中。但是,我希望在运行时向该集合中添加一些内容。

谢谢

编辑:
我尝试执行此操作的原因之一是由于一项安全要求,该要求阻止我将ConnectionStrings放置在web.config中(即使已加密)。我想在我的项目中使用诸如Membership和Profiles之类的元素;但是,我正在寻找一种替代方法,无需编写自定义提供程序。定制提供程序并没有那么糟糕,但是如果我能找到一个更简单的解决方案,我将全力以赴。

最佳答案

var cfg = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(@"/");
cfg.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(params));

cfg.Save();

忠告这将导致您的网站回收,因为它修改了配置文件。查看http://msdn.microsoft.com/en-us/library/4c2kcht0(VS.80).aspx

10-01 08:08