从web.config文件动态更改连接字符串的可能影响

时间:2013-07-10 08:02:22

标签: c# asp.net security connection-string

最近我一直在研究从Web.config文件重写/替换ConnectionString。假设我的原始web.config中有一个“虚拟”帐户:

<connectionStrings>
    <add name="OracleDBConnString" connectionString="Provider=MSDAORA;Data Source=ISDDEV;User ID=dummy_account;Password=password;"
      providerName="System.Data.OleDB" />
</connectionStrings>

基于这篇文章:How do I set a connection string config programatically in .net?,我可以动态地从web.config更改连接字符串,但是如果我在运行时动态更改连接字符串会有任何负面影响吗?如果我有多个用户(使用不同的帐户或conn字符串)访问系统,是否存在“冲突”?您对我可以使用的方法有任何建议吗?

我必须更改conn字符串的原因是因为我实际上并没有在数据库中维护密码,而是直接使用数据库中用户的登录详细信息。提前谢谢。

1 个答案:

答案 0 :(得分:1)

web.config中的连接字符串是应用程序范围的参数。如果您使用您提到的反射技巧为一个用户更改它,它将针对整个应用程序进行更改,而其他用户将无意中使用它。

如果您的数据库提供程序支持,您可以尝试与Windows身份验证配对使用模拟。这样,用户将透明地对数据库进行身份验证,而无需传递密码。

您还可以创建一个新的临时连接字符串对象,该对象基于Web配置中的一个,但具有修改的凭据,然后自己使用它创建连接。