2010-08-17 14 views
8

के कस्टम अनुभागों को एन्क्रिप्ट करना मैंने अपने आवेदन में एक लचीला कॉन्फ़िगरेशन अनुभाग हैंडलर बनाने के लिए आलेख Creating a Flexible Configuration Section Handler का उपयोग किया।web.config

मैंने इस आलेख को Encrypting Custom Configuration Sections on the OdeToCode blog नामक एक वेब.config फ़ाइल के हिस्सों को एन्क्रिप्ट करने के तरीके पर भी देखा।

पहले लेख से, हमारे पास यह web.config कोड है।

<?xmlversion="1.0"encoding="utf-8"?> 
<configuration> 
    <configSections> 
     <sectionname="StyleSheetSettings_1"  
      type="FifteenSeconds.Core.BasicConfigurator"/> 
    </configSections> 
    <StyleSheetSettings_1> 
     <StyleSheets> 
      <Style SheetName="Page"Href="Styles/Page.css"Media="screen"/> 
      <StyleSheetName="Custom"Href="Styles/Custom.css"Media="screen"/> 
      <StyleSheetName="Print"Href="/Lib/Styles/Print.css"Media="print"/> 
     </StyleSheets>  
    </StyleSheetSettings_1> 
</configuration> 

मैंने निम्नलिखित कमांड लाइन कोड जैसे कोड का उपयोग करके कोड को एन्क्रिप्ट करने के लिए निम्न कोड का उपयोग करने का प्रयास किया।

aspnet_regiis.exe -pef "StyleSheetSettings_1" C:\Test\ 

मैं निम्न त्रुटि

लोड नहीं कर सका प्रकार FifteenSeconds.Core.BasicConfigurator ' विधानसभा से' System.Web, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, हो रही है PublicKeyToken = b03f5f7f11d50a3a '।

किसी भी मदद की सराहना की जाएगी।

उत्तर

0

विधानसभा नाम

type="FifteenSeconds.Core.BasicConfigurator, MyWebApplication" 

इसमें यह माना जाता BasicConfiguration आपके वेब एप्लिकेशन

+2

असेंबली नाम प्रकार जोड़ने के बाद = "पंद्रह सेकेंड। कोर। बेसिक कॉन्फिगरेटर, पंद्रह सेकेंड। कोर", मुझे अभी भी निम्न त्रुटि मिल रही है। को कूटबद्ध करने विन्यास खंड ... कोई त्रुटि StyleSheetSettings_1 के लिए विन्यास अनुभाग हैंडलर बनाने हुई: फ़ाइल या विधानसभा 'FifteenSeconds.Core' या उसके dependen cies से एक लोड नहीं कर सका। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा। –

+0

वेब से संबंधित डीएलएल कहां है। कॉनफिग –

+0

क्या आप कृपया http://stackoverflow.com/questions/9528681/listing-users-with-access-to-netframeworkconfigurationkey-acl का उत्तर दे सकते हैं? – Lijo

8

का इन है केवल ज्ञात समाधान एक भयानक हैक है शामिल करने के लिए परिवर्तन प्रकार की कोशिश कर रहा। असेंबली (और सभी निर्भरताओं) को प्रासंगिक .NET फ्रेमवर्क निर्देशिका (जहां aspnet_regiis.exe स्थित है) पर कॉपी करें।

+0

क्या आप कृपया http://stackoverflow.com/questions/9528681/listing-users-with-access-to-netframeworkconfigurationkey-acl का उत्तर दे सकते हैं? – Lijo

+0

@ एडम - अरे, धन्यवाद। इसने मेरी समस्या हल की :-) – Jeb

0

मेरी कॉन्फ़िगरेशन फ़ाइल में किसी प्रकार का संदर्भ देने पर मुझे एक ही समस्या आई है। जैसा कि कॉनराड Frix ने सुझाव दिया है, आपको नामस्थान प्रकार संदर्भ के बाद असेंबली नाम के संदर्भ की आवश्यकता है। मैंने जो कुछ भी मुझे लगता है कि असेंबली नाम की जांच करने की बजाए यह है कि इसे प्रोजेक्ट के नाम पर अलग नाम हो सकता है। आप विजुअल स्टूडियो में प्रोजेक्ट पर राइट क्लिक करके और गुणों पर जाकर सुनिश्चित कर सकते हैं। यह सुनिश्चित करने के लिए दो बार जांचें कि प्रोजेक्ट उसी नाम से असेंबली आउटपुट कर रहा है जैसा कि आप अपने web.config में निर्दिष्ट कर रहे हैं।

0

कुछ इस तरह काम कर सकते हैं, मैं इसे अपने आप को करने की कोशिश की नहीं किया और न एक साफ समाधान

http://blogs.msdn.com/b/kaevans/archive/2004/08/19/217177.aspx जो System.Configuration.NameValueSectionHandler उपयोग करता है।

(System.Collections.Specialized.NameValueCollection) WebConfigurationManager.GetSection("SectionName") 

मैं हालांकि इस तरह की कोशिश की है, System.Configuration.SingleTagSectionHandler का उपयोग करने और

(Hashtable)WebConfigurationManager.GetSection("SectionName"); 

http://vaultofthoughts.net/UsingSingleTagSectionHandlerInsteadOfAppSettings.aspx

12

यहाँ इस मुद्दे (http://www.dotnetnoob.com/2013/01/how-to-encrypt-custom-configuration.html में पाया जाता है) के लिए एक और वैकल्पिक हल है। Aspnet_regiis कमांड चलाने से पहले configSections तत्व (/ config/configSections) के अंतर्गत कस्टम सेक्शन के लिए सेक्शन तत्व को टिप्पणी करें और कस्टम सेक्शन एन्क्रिप्टेड होना चाहिए।

<configSections> 
    <!--<section name="myCustomSection" type="My.Product.CustomSection, My.Product.Assembly/>--> 
</configSections> 


c:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -pef myCustomSection C:\path\to\app 
Microsoft (R) ASP.NET RegIIS version 4.0.30319.17929 
Administration utility to install and uninstall ASP.NET on the local machine. 
Copyright (C) Microsoft Corporation. All rights reserved. 
Encrypting configuration section... 
Succeeded! 
+0

यह काम किया, धन्यवाद श्रीमान! – Ben

+0

अच्छा काम, धन्यवाद! समझ में आता है, टिप्पणी अनुभाग केवल ऐप के लिए निर्दिष्ट प्रकार और एन्क्रिप्शन के साथ केवल गड़बड़ करने के लिए आवश्यक है। –

+0

3 साल बाद, यह बग अभी भी तय नहीं है। हे भगवान यह रफ़ू करना। – Zoomzoom

0

मैंने अभी भी एक समान समस्या को हल किया है।आपको "प्रकार" विशेषता के भीतर लाइब्रेरी निर्दिष्ट करने की आवश्यकता है।

बजाय

:

<section name="StyleSheetSettings_1" type="FifteenSeconds.Core.BasicConfigurator"/> 

प्रयास करें:

<section name="StyleSheetSettings_1" type="FifteenSeconds.Core.BasicConfigurator, FifteenSeconds"/> 

मेरे मुद्दा हालांकि मैं नेट पुस्तकालयों बजाय उपयोग कर रहा था, लगभग उसी था।

यह:

<section name="Roles" type="System.Configuration.AppSettingsSection" /> 

बने:

<section name="Roles" type="System.Configuration.AppSettingsSection, System.Configuration" /> 

उम्मीद है कि इस काम करता है।