У меня есть приложение на основе сущностей WPF с app.config. Он работает с обычной конфигурацией, но не работает с зашифрованной. Что я должен сделать, чтобы это сработало?
обычная конфигурация:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <connectionStrings> <add name="Entities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="data source=00.000.00.0000;initial catalog=some;persist security info=True;user id=adm;password=pwd; multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> </entityFramework> </configuration>
зашифрованная конфигурация:
<?xml version="1.0" encoding="utf-8"?> <configuration> <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>F0pnLcQkS/0q1OAIlDXECiIKqF7Tjd3498FN11noK8nJMoYVIAUtCQBzMbBKzj6XeUw3y5FrrvVPReZ/ek9RhD4f8gR0ZmwXAG48WthR9cbTzx9l5YPHwN8hpWCb3D+v9SJr5AK7EKcoJdDFFpR31MxOgFL6AeQSvuk3znFE+aQ=</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>rGpHFMOj39D+2/ADNQ1xNPARGoq1XYPM4rCmvmSLM/o=</CipherValue> </CipherData> </EncryptedData> </connectionStrings> </configuration>
Что я уже пробовал:
using System; using System.ComponentModel; using System.Data.EntityClient; using System.Data.Objects; using System.Data.Objects.DataClasses; using System.Linq; using System.Runtime.Serialization; using System.Xml.Serialization; using System.Configuration; using System.Security; using System.Security.Cryptography; [assembly: EdmSchemaAttribute()] namespace SMTAdapter { /// <summary> /// </summary> /// public partial class bankEntities : ObjectContext { #region Конструкторы public Entities() : base("name=Entities", "Entities") <===this string produces error:name connectionString not found, not supposed to work with EntityClient or impossible { this.ContextOptions.LazyLoadingEnabled = true; OnContextCreated(); }