确保连接字符串和web.config中

问题描述:

我在web.config中加密的连接字符串喜欢这里描述:
http://blogs.msdn.com/b/sqlazure/archive/2010/09/07/10058942.aspx
发布到Azure和一切工作正常。

但是现在我面临着本地开发中的一个问题,我在本地数据库上工作,在这里我不需要加密连接字符串。
我的地方发展被配置为调试配置,我试图替换(变换)等的web.config的加密connectionStrings节:
确保连接字符串和web.config中

<connectionStrings configProtectionProvider="CustomProvider"> 
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" 
... 
</EncryptedData> 

与常规的非加密的部分以web.config.debug

<connectionStrings> 
<add name="ApplicationServices" connectionString="data source=localhost... 
</connectionStrings> 

我没有问题,加上部分与XDT:转换=“插入,但我没能删除的web.config
它导致的分析器错误信息的部分:无法识别的元素在调试模式下执行Web项目时的'EncryptedData'。

有没有办法删除web.config.debug的EncryptedData部分,或者更好的做法来克服这个问题?

+0

为什么使用调试模式相同的用户名/密码?使用其他登录凭证调试另一个数据库。 – Gerard 2014-08-22 08:28:38

只是想知道......为什么要保护连接字符串?您可以将连接字符串放在.cscfg文件中,并且该文件不以任何方式通过IIS公开。

+3

这不是关于在IIS中公开的,即使在cscfg文件中,也可以读取连接字符串和纯密码。由于安全原因,我喜欢隐藏sql azure的密码,因为对于本地开发人员而言,不需要知道azure密码。 – freakdev 2011-04-04 08:16:46

是的,你可以把它们放在一个.csfg文件,使库中提取的ConnectionString(只需提供该DLL):

public class MyContext : DbContext 
{ 
    private MyContext(string connString) 
     : base(connString) 
    { 
    } 

    public static MyContext GetMyContext() 
    { 
     string dbConnString = CloudConfigurationManager.GetSetting("MyDbConnectionString"); 

     return new MyContext(decrypt(dbConnString)); 
    } 
}