2016-07-13 23 views
0

ich meine Bewerbung vor kurzem von .net 3.5 aktualisiert eine Datei config 4.5 .net .Ich halten, in dem ich Benutzer speichern data.And, dass Daten verschlüsselt System.Configuration.DpapiProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aWie Verwenden von System.Configuration.DpapiProtectedConfigurationProvider Version 2 in .net Framework 4.5?

Nach, Upgrade verwenden, wenn ich versuchte, von der für den Zugriff auf Daten config-Datei, es gab folgende Fehler:

The entry 'DataProtectionConfigurationProvider' has already been added. 

So entfernte ich den Eintrag aus dem DataProtectionConfigurationProvider Eintrag aus der file.After, dass, wenn ich versuchte, auf die Datei zuzugreifen, ich habe folgende Ausnahme:

Failed to decrypt using provider 'DataProtectionConfigurationProvider'. Error message from the provider: Key not valid for use in specified state. (Exception from HRESULT: 0x8009000B) 

Hier ist meine Config-Datei:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="CustomPane_outlookAddIn.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <system.serviceModel> 
    <bindings /> 
    <client /> 
    </system.serviceModel> 

    <configProtectedData> 
    <providers> 
     <add name="DataProtectionConfigurationProvider" type="System.Configuration.DpapiProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" description="Uses CryptProtectData and CryptUnProtectData Windows APIs to encrypt and decrypt" useMachineProtection="true" keyEntropy="" />  
    </providers> 
    </configProtectedData> 

    <appSettings configProtectionProvider="DataProtectionConfigurationProvider"> 
    <EncryptedData> 
     <CipherData> 
     <CipherValue>Encrypted user data</CipherValue> 
     </CipherData> 
    </EncryptedData> 
    </appSettings> 
    <system.web> 
    <membership defaultProvider="ClientAuthenticationMembershipProvider"> 
     <providers> 
     <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> 
     </providers> 
    </membership> 
    <roleManager defaultProvider="ClientRoleProvider" enabled="true"> 
     <providers> 
     <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> 
     </providers> 
    </roleManager> 
    </system.web> 
</configuration> 

Antwort

1

Es nach dem Entfernen des „DataProtectionConfigurationProvider“ Eintrags von Config arbeitete file.The Problem war, dass ich die Config-Datei aus anderen Computern wurde mit und der Schlüssel wurde im Computer gespeichert aus welches die Konfigurationsdatei war.