2013-09-23 62 views
1

对不起,如果这看起来像一个愚蠢的问题。如何防止阅读app.config?

我的应用程序使用连接字符串连接到SQL Server 2008数据库并使用Crystal Report,我的服务器使用混合身份验证模式。

问题是:app.config文件显示连接字符串(用户名&密码),我不想让任何人看到!

Data Source=.\SQLEXPRESS;Initial Catalog=ComplainsDb;Persist Security Info=false; User ID=abcde ;Password=MyPassword 

感谢您的任何帮助。

+5

加密在app.config。谷歌它,你会发现很多关于它.. –

+0

相关[问题](http://stackoverflow.com/questions/11637348/encrypt-connection-string-in-app-config) –

回答

2

您需要的时候你的程序开始调用是这样的:

void EncryptConnectionStringsIfNecessary() 
    { 
     var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     ConnectionStringsSection section = configFile.ConnectionStrings; 
     if (section != null) 
     { 
      if (!section.IsReadOnly()) 
      { 
       if (!section.SectionInformation.IsProtected) 
       { 
        section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 
        section.SectionInformation.ForceSave = true; 
        configFile.Save(ConfigurationSaveMode.Full); 
       } 
      } 
     } 
    } 
+0

到目前为止,这是我的工作。 。但是我怎么能解密这个文件? –

+1

你通常不需要做任何事情。如[MSDN文档](http://msdn.microsoft.com/en-us/library/hh8x3tas.aspx)中所述,.NET框架将在您访问'ConfigurationManager.ConnectionStrings [connectionStringName]时自动解密设置' 。 – shamp00

+0

非常感谢每一位帮助我 –