本文介绍了使用cmd加密App.Config自定义元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我可以使用 aspnet_regiis.exe 命令配置连接字符串加密。现在我已经创建了配置部分,在其上添加了自定义配置元素集合,这将存储连接信息的值。I am able to configure the Connection String Encryption using the aspnet_regiis.exe command. Now I have created the Configuration Section on which it is added Custom Configuration Element Collection and this will store the value of Connection Information.namespace ExpressSnapSortCreation{ /// <summary> /// This Class hold the the Collection of Cofigration key /// </summary> internal class ServerReplicationsCollection : ConfigurationElementCollection { /// <summary> /// This Will return the ConfigurationElement /// </summary> /// <returns>ConfigurationElement</returns> protected override ConfigurationElement CreateNewElement() { return new ServerReplicationsElement(); } /// <summary> /// Get Element BY key /// </summary> /// <param name="element"></param> /// <returns></returns> protected override object GetElementKey(ConfigurationElement element) { return ((ServerReplicationsElement)element).Name; } /// <summary> /// This is override on the Elements /// </summary> public class ServerReplicationsElement : ConfigurationElement { /// <summary> /// Name of the Element /// </summary> [ConfigurationProperty("name", IsRequired = true)] public string Name { get { return (string)this["name"]; } set { this["name"] = value; } } /// <summary> /// Data base name /// </summary> [ConfigurationProperty("connectionString", IsRequired = true)] public string ConnectionString { get { return (string)this["connectionString"]; } set { this["connectionString"] = value; } } /// <summary> /// Data base user name /// </summary> [ConfigurationProperty("providerName", IsRequired = true)] public string ProviderName { get { return (string)this["providerName"]; } set { this["providerName"] = value; } } /// <summary> /// Display Order /// </summary> [ConfigurationProperty("order", IsRequired = false)] public int Order { get { return (int)this["order"]; } set { this["order"] = value; } } } }}这是创建节的代码 class ServerReplications : ConfigurationSection { /// <summary> /// The name of this section in the app.config. /// </summary> public const string SectionName = "ReplicationConfigurationSection"; /// <summary> /// Replication data base name /// </summary> private const string ReplicationCenterCollectionName = "ReplicationDataBases"; [ConfigurationProperty(ReplicationCenterCollectionName)] [ConfigurationCollection(typeof(ServerReplicationsCollection), AddItemName = "add")] public ServerReplicationsCollection ReplicationDataBases { get { return (ServerReplicationsCollection)base[ReplicationCenterCollectionName]; } } }这是我的App Config文件。This is my App Config file. <?xml version="1.0"?> <configuration> <configSections> <section name="ReplicationConfigurationSection" type="ExpressSnapSortCreation.ServerReplications, ExpressSnapSortCreation" /> </configSections> <ReplicationConfigurationSection> <ReplicationDataBases> <add name="ApplicationServices" connectionString="Data Source=PC-002\SQLEXPRESS2014;Initial Catalog=AML25;Persist Security Info=True;User ID=sa;Password=StItS!@#SeRvErPC-003" providerName="System.Data.SqlClient" order="1" /> <add name="ApplicationServices2" connectionString="Data Source=PC-004\SQLEXPRESS2014;Initial Catalog=AML26;Persist Security Info=True;User ID=sa;Password=StItS!@#SeRvErPC-002" providerName="System.Data.SqlClient" order="2" /> </ReplicationDataBases> </ReplicationConfigurationSection> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/> </startup> </configuration>在应用程序中,我们得到了连接字符串的值。由于安全目的,我们无法在App.config值中显示数据。那么需要加密以下部分In the Application we are getting the The value of the connection string. Due to Security purpose We can't Show the Data in App.config value. then it is required to encrypt the below Section 这是我使用的第一个命令This is the first command I used aspnet_regiis.exe -pefReplicationConfigurationSectionC:\Users\mukesh.singh\Documents\Visual Studio 2015\Projects\AML\ExpressSnapSortCreation得到错误将文件名app.config转换为Web.configGot Error Convert the file name "app.config" to "Web.config"无法加载文件或程序集ExpressSnapSortCreation或其中一个的依赖项。该系统找不到指定的文件。失败!Could not load file or assembly 'ExpressSnapSortCreation' or one of its dependencies. The system cannot find the file specified. Failed! 更改后After changed 我也尝试过这个组合I tried this combination also aspnet_regiis.exe -pefExpressSnapSortCreation.ServerReplications / ExpressSnapSortCreationsC:\Users\mukesh .singh\Documents\Visual Studio 2015\Projects\AML\ExpressSnapSortCreation推荐答案这是我用来加密我的app.config上的自定义部分的代码,我刚刚打开Bin文件夹里面的app.config文件加密This is The code I have Used to encrypt my custom section on the app.config. I just open the app.config file inside the Bin folder it is Encrypted Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ConfigurationSection section = config.GetSection("ReplicationConfigurationSection"); if (section != null) { if (!section.IsReadOnly()) { if (!section.SectionInformation.IsProtected) { if (!section.ElementInformation.IsLocked) { section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); section.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Full); Console.WriteLine("Section {0} is now protected by {1}", section.SectionInformation.Name.ToString(), section.SectionInformation.ProtectionProvider.Name.ToString()); } } } }我打开配置文件看起来像这样When I open the Config file its look Like this <configuration> <configSections> <section name="ReplicationConfigurationSection" type="ExpressSnapSortCreation.ServerReplications, ExpressSnapSortCreation" allowLocation="true" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" overrideModeDefault="Allow" restartOnExternalChanges="true" requirePermission="true" /> </configSections> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/> </startup> <ReplicationConfigurationSection 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>FXUE9iChoq/7HGE4nV3muaPZy4ejcDCcZx0PVasHZJi4xRs0ZPXI08unUegvXs+C2FALEskpHa+Tt4u24I8OhSRS9QI+I2kpgxTlQvMFmsvFu6pkDQS1jt13EHmov0Thr1CBGhMXyHMm0EGr0+yWKI3PfD9vwGmQl0yawLdyiockQk9kCuik8g8jnpiyaidYL/RKpdwNPBuH9wOm8WWTXlUL4N+SO98jAX0PPoDjaDbDdB14t71Favg7vxpjIj5pDlljj59ek3pudW0etIHm6v8YsJaE9Et62DfzB31W4kmGNgmmGWTu4/hF93J0kv9VgkmKTcdOmeXq2KHA2JCLKg==</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>JkWK1jpOzcbtX8k/SVvTVRxQKO0ylRyWQ8imAOaIz51e3JmdhqXgdH8p5unceEiLCH2PTZOBZMIgYW4hYILiGnUE4SBZ6PfFr2vGowXdg13K808uSAx9taFb0HfvubcSQ23nwoBuJJmKfYooZX73YRnRvxIFH5SJZZ+WB8mTlNgaAZ+JftaN2rAlpH/cei4gwPCR64PaTu5VDJflSj0WnF7ZD13c0I0ZpHtJs29u0XTkBnAsL5DGULZsAexn2+89uaLfNpr9K+AYW8477TelVpnHGsMGDSOYOlWNUylldjATKZ/sgzDU/gq29dV+9RO18xvCHLXWjKKiT4B7UOlp82/1D/ky3OlK6opCEIJbCStm0q8MrvSQksdPN/yJ+S0Tv3E8hD4Wmf6grJOBlMGesomickqOzEudc+3fRwQS4Paf+ca3NgAk5utI+piZNhNtAnA/XU1ozDD0Zv381xaMTOTNjBq35hplK8zuHBVg+bZkbilSd3L4x4QAEv1Ds9Kt5hyUZyUNMWoXUXk0qoOP8UbMdHvUGvjsvAFudvZ7ZxtntiARptTFeTfg3qcghDdoyzOYBK3Md2urstEVdsdj6z6/RqBFO4qGY6hQ/IvIq+7lgG2rDsGH3AJlRNSdb+YJYktqGut65kvqcrSR2CgtYoGWcsUneBkpzQ65Rb0d6jL2Qt7zfJg1aA2iv97N15+tPjFDUQbbYFBi2ubvq1/pc7s/odaSUNK2LCfctXFG32MbEndJk1rXreLencAH/KlO2iJzA6QujwcT/LYo6w97lVbkrZAWWgxnUmVKeq+OwS6AybaK/sIw5wxBFsouCNdt</CipherValue> </CipherData> </EncryptedData> </ReplicationConfigurationSection></configuration>更多。 加密要重新分发的App.config文件中的部分和/或设置 https://msdn.microsoft.com/en-us/library/system.configuration.rsaprotectedconfigurationprovider(v = vs80).aspx 这篇关于使用cmd加密App.Config自定义元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!