配置文件写成类似
<configuration>
  <connecitonStrings>
    <EncyptedStrings/>
  </connectionString>
  
  <protectedData>
    <providers>
     <add name="MyProvider"
          type="System.Configuration.RasProtectedConfigurationProvider"
          keyContainerName="MyKeys"
          useMachineContainer="true"/>
    </providers>
  
    <protectedDataSections>
      <add name="connectionStrings"
           provider="MyProvider"
           inheritedByChildren="false"/>
    </protectedDataSections>
  </protectedData>
</configuration>首先是这个配置文件怎样生成?
新建一个winform项目,生成解决方案后bin目录里并没有winapp.exe.config文件啊。aspnet_regiis -pc "MyKeys" -exp 生成KeySet然后在代码中
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None, "");config.ConnectionStrings.ConnectionStrings.Add(
   new ConnectionStringSettings(
     "MyConnectionStrings",
     "Server=local;Database=Test;Password=aaa;User ID=kkk")
   )
config.Save();别的问题先暂不说,那个配置文件怎样生成啊?
   

解决方案 »

  1.   

    项目中新增一个应用程序配置文件可以多出一个Myapp.exe.config文件。
    在app.config里写入上面的那些东东总是提示错误。有没有vs2005加密连接字符串的例子啊?
      

  2.   

    http://blog.csdn.net/veryhappy/archive/2006/01/28/589669.aspx
      

  3.   

    还有就是
    aspnet_regiis -pc "MyKeys" -exp 
    应该在哪个目录下执行啊?  <connecitonStrings>
        <EncyptedStrings/>
      </connectionString>
    里的<EncryptedStrings/>提示说是非法的。总之,告诉我怎样在vs2005加密连接字符串,好吗?对了,是winform
      

  4.   

    那我问你,如果你可以加密,你怎么改密码?用大脑加密新密码?不现实,就算再用额外的加密也不符合软件的可用性,你既然想把密码放进config文件中,就表示你将要对密码进行设置,这本身就是需要能看到密码的。config文件是用户可以修改的。
    下策就是,写死在程序里,这是下策。
    上策就是,不要让客户端能够直接连接数据库,增设服务器端,这样安全性更高,客户端只要配置服务器地址就好了。不过这样成本会增加,你衡量一下吧。
      

  5.   

    对不起,我不想衡量什么东西。哪位高手赶紧把vs2005winform加密连接字符串方面的技巧说一下吧。