在app.config中encryption连接string
我在encryptionapp.config中的连接string时遇到问题。 我有代码将保护app.config的connectionStrings部分,但密码仍然以纯文本显示。
我需要对连接string进行encryption,因此在部署时它不是纯文本格式。 我看到类似于web.config的问题,但不是app.config。
看看这篇文章里面有一些非常有用的例子。 你基本上在寻找System.Configuration.SectionInformation.ProtectSection
来帮助你在这里。
还有一个在实施保护configuration偷看
您可以轻松应用与web.config相同的解决scheme,只需将app.config重命名为web.config,使用aspnet_regiis工具进行encryption,然后将其重命名为app.config。
- 将app.config重命名为web.config
- 打开命令提示符并键入:
%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionStrings" c:\<folder containing your web.config>
(停止在文件夹级别,不要放在尾部“\”) - 将web.config重命名回app.config
你可以在记事本中打开它来查看encryption文件。 在视觉工作室你会看到它的解密。 您可以像使用未encryption的方式一样使用连接string。
定义config
文件的位置
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
如果你想encryptionconnectionStrings
string
config.ConnectionStrings.SectionInformation.ProtectSection(Nothing);
您必须了解应用程序configuration部分
所以如果你想encryptionAppSettings
config.AppSettings.SectionInformation.ProtectSection(Nothing);
您可以使用Rijndaelalgorithm,在类System.Security.Cryptography.Rijndael
实现。 这是非常强大的encryption模式,根据特定的密码将字节转换为其他字节。
看看这个例子 。
这个代码对于Model First是有用的。 1 – 创build一个这样的类。 (AADOEEntities1是一个实体模型)
class DataContext { public static AADOEEntities1 Context; }
2 – 把这个代码放在program.cs中
using System; using System.Collections.Generic; using System.Collections; using System.Linq; using System.Data.Common; using System.Data; using System.Data.SqlClient; using System.Data.EntityClient; using System.Data.Metadata.Edm; using System.IO; namespace a { string providerName = "System.Data.SqlClient"; string serverName = "."; string databaseName = "AADOE"; // Initialize the connection string builder for the // underlying provider. SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); // Set the properties for the data source. sqlBuilder.DataSource = serverName; sqlBuilder.InitialCatalog = databaseName; sqlBuilder.IntegratedSecurity = true; sqlBuilder.UserID = "sa"; sqlBuilder.Password = "123456"; // Build the SqlConnection connection string. string providerString = sqlBuilder.ToString(); // Initialize the EntityConnectionStringBuilder. EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); //Set the provider name. entityBuilder.Provider = providerName; // Set the provider-specific connection string. entityBuilder.ProviderConnectionString = providerString; // Set the Metadata location. entityBuilder.Metadata = @"res://*/mdlAADOE.csdl| res://*/mdlAADOE.ssdl| res://*/mdlAADOE.msl"; EntityConnection conn = new EntityConnection(entityBuilder.ToString()); DataContext.Context = new AADOEEntities1(conn); Application.Run(new frmLogin()); }
3 – 在app.config中设置connectionstring =“”。
- 如何从WPF中的app.config获取List <string>值的集合?
- configuration元素没有声明
- 为什么在添加Microsoft.Bcl.Async包之后,将“bindingRedirect”添加到app.config文件中?
- AppSettings vs applicationSettings的优缺点(.NET app.config / Web.config)
- 等效于库(DLL)的“app.config”
- 什么'useLegacyV2RuntimeActivationPolicy'在.NET 4configuration?
- 如何以编程方式修改WCF app.config端点地址设置?
- Visual Studio中开发人员特定的app.config / web.config文件