.NET连接到Web配置中的SQL DB加密

时间:2015-02-05 10:22:40

标签: asp.net database security

我们正在使用.NET开发应用程序,我们正在连接到Windows服务器上的SQL 2008数据库。到目前为止,我们一直是一个小团队,这意味着以下代码是可以接受的:

<add key="ConnectionString" value="Server=00.000.000.00;uid=myUsername;pwd=myPassword;Database=myDatabase" />

当我想连接数据库时,会调用它。

我们的团队正在扩展,新的开发人员不应该访问数据库凭据。他们可以访问应用程序代码,并且必须连接到非本地服务器上的数据库,同时在本地调试模式下运行。

允许他们连接到数据库而没有凭据允许他们打开数据库并查看表格的最佳(也是最快)解决方案是什么?

1 个答案:

答案 0 :(得分:0)

最快捷,最简单的解决方案是加密config文件中的ConnectionString。它也很简单。

打开CMD,键入以下命令,将目录更改为.NET Framework版本(您的首选版本)目录:

cd \WINDOWS\Microsoft.Net\Framework\yourversion     
At the command prompt, run aspnet_regiis.exe with the following options:
The -pe option and the string "connectionStrings" to encrypt the connectionStrings element of the Web.config file for your application.
The -app option and the name of your application.

例如,以下命令会加密名为MyApplication的应用程序的Web.config文件部分。

aspnet_regiis -pe "connectionStrings" -app "/MyApplication" 

加密的connectionString看起来像

<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
  <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
     xmlns="http://www.w3.org/2001/04/xmlenc#">
     <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
           <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
           <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
              <KeyName>RSA Key
              </KeyName>
           </KeyInfo>
           <CipherData>
              <CipherValue>WcFEbDX8VyLfAsVK8g6hZVAG1674ZFc1kWH0BoazgOwdBfinhcAmQmnIn0oHtZ5tO2EXGl+dyh10giEmO9NemH4YZk+iMIln+ItcEay9CGWMXSen9UQLpcQHQqMJErZiPK4qPZaRWwqckLqriCl9X8x9OE7jKIsO2Ibapwj+1Jo=
              </CipherValue>
           </CipherData>
        </EncryptedKey>
     </KeyInfo>
     <CipherData>
        <CipherValue>OpWQgQbq2wBZEGYAeV8WF82yz6q5WNFIj3rcuQ8gT0MP97aO9SHIZWwNggSEi2Ywi4oMaHX9p0NaJXG76aoMR9L/WasAxEwzQz3fexFgFSrGPful/5txSPTAGcqUb1PEBVlB9CA71UXIGVCPTiwF7zYDu8sSHhWa0fNXqVHHdLQYy1DfhXS3cO61vW5e/KYmKOGA4mjqT0VZaXgb9tVeGBDhjPh5ZlrLMNfYSozeJ+m2Lsm7hnF6VvFm3fFMXa6+h0JTHeCXBdmzg/vQb0u3oejSGzB4ly+V9O0T4Yxkwn9KVDW58PHOeRT2//3iZfJfWV2NZ4e6vj4Byjf81o3JVNgRjmm9hr9blVbbT3Q8/j5zJ+TElCn6zPHvnuB70iG2KPJXqAj2GBzBk6cHq+WNebOQNWIb7dTPumuZK0yW1XDZ5gkfBuqgn8hmosTE7mCvieP9rgATf6qgLgdA6zYyVV6WDjo1qbCV807lczxa3bF5KzKaVUSq5FS1SpdZKAE6/kkr0Ps++CE=
        </CipherValue>
     </CipherData>
  </EncryptedData>
</connectionStrings>

您可以 this 文章了解更多信息