2013-04-20 3 views
5

मेरी खिड़कियां आवेदन में मैं app.config फ़ाइल का कनेक्शन स्ट्रिंग अनुभाग, मेरी app.config फ़ाइल का कनेक्शन स्ट्रिंग हिस्सा एन्क्रिप्ट करने के लिए कोशिश कर रहा हूँप्रदाता 'रुपये संरक्षित कॉन्फ़िगरेशनप्रदाता' का उपयोग करके डिक्रिप्ट करने में विफल?

<connectionStrings> 
<add name="SQLiteDB" connectionString="Data Source=|DataDirectory|database.s3db;  
Version=3;password=mypassword;" providerName="System.Data.Sqlite"/> 
</connectionStrings> 

और .cs में दाखिल मैं इसे

तरह एन्क्रिप्ट करने रहा है
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath); 
ConfigurationSection section = config.GetSection("connectionStrings") as ConnectionStringsSection; // could be any section 

if (!section.IsReadOnly()) 
{ 
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); 
section.SectionInformation.ForceSave = true; 
config.Save(ConfigurationSaveMode.Full); 
} 

इस कोड को चलाने के बाद मुझे एक अलग app.config में एन्क्रिप्टेड कनेक्शन स्ट्रिंग मिलती है, यह app.config bin \ debug फ़ोल्डर में रहता है और इस .config फ़ाइल का नाम nameofapplication.exe.config है।

System.Configuration.ConfigurationErrorsException: Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened. 

मैं यह पहली बार कर रहा हूँ तो यह कैसे हल करने के लिए पता नहीं है, में बुरी तरह stucked:

समस्या

जब मैं इस आवेदन के सेटअप बनाया और अन्य मशीन पर चलने कि अगर त्रुटि देता है यह।

उत्तर

3

app.config फ़ाइल आपके स्थानीय मशीन पर प्रमाणपत्र का उपयोग करके एन्क्रिप्ट किया जाएगा। यह प्रमाणपत्र अन्य मशीन पर मौजूद नहीं होगा। इसलिए आप app.config फ़ाइल को डिक्रिप्ट करने में सक्षम नहीं होंगे।

इसके लिए काम करने के लिए, आपको अपनी मशीन पर एन्क्रिप्शन कुंजी निर्यात करने की आवश्यकता है, फिर इसे अन्य मशीन पर आयात करें। निम्न आलेख को दर्शाता है कि कैसे करना है: पूर्वाभ्यास: Creating and Exporting an RSA Key Container

+0

FYI करें, या यहाँ तक कि यदि आप अन्य मशीन की चाबी आयातित, अनुमति के बारे में मेरे मामले में के बारे में हो सकता है। जब मैं वीएस पर डीबग करता था तो डिक्रिप्ट नहीं कर सका लेकिन मैंने वीएस को व्यवस्थापक के रूप में खोला। इसे डिक्रिप्ट करने के लिए शुरू किया। – enterbutton

6

इस आदेश का उपयोग aspnet_regiis -pa

ओपन cmd कंसोल -execute रूप Administrator-

C:\Windows\system32>aspnet_regiis -pa "NetFrameworkConfigurationKey" "myDomain\myUser" 
Microsoft (R) ASP.NET RegIIS versión 4.0.30319.33440 
Utilidad de administración que instala y desinstala ASP.NET en el equipo local. 
Copyright (C) Microsoft Corporation. Todos los derechos reservados. 
Agregando ACL para el acceso al contenedor de claves RSA... 
Con éxito 

अधिक संदर्भ:

Ɖiamond ǤeezeƦ answer

The RsaProtectedConfigurationProvider sometimes fails when encrypting an application configuration file

ASP.NET Encryption - aspnet_regiis - Farm

Encrypting and Decrypting Web.config Sections in .NET 4.0

+0

किकनेट आपने अपना दिन बचाया! Win7 से Win10 तक अपने लैपटॉप को अपग्रेड करने के बाद मुझे यह त्रुटि मिल रही थी। मुझे बस इतना करना था कि 'aspnet_regiis' वर्णित किया गया था। अब यह सब एक आकर्षण के रूप में फिर से काम करता है! –

संबंधित मुद्दे