मेरे पास कुछ विरासत कोड है जो Web.config के system.net/mailSettings/smtp
अनुभाग में SMTP सर्वर, उपयोगकर्ता नाम, पासवर्ड संग्रहीत करता है।मध्यम ट्रस्ट वातावरण में Web.config से system.net/mailSettings/smtp पढ़ना
यह उन्हें इतना की तरह पढ़ने के लिए प्रयोग किया है:
Configuration c = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)c.GetSectionGroup("system.net/mailSettings");
return settings.Smtp.Network.Host;
लेकिन जब मैं एक मध्यम विश्वास पर्यावरण के लिए तैनात करने के लिए किया था इस में नाकाम रहने थी।
तो this question से जवाब के बाद, मैं इसे दुबारा लिखा GetSection()
इसलिए की तरह उपयोग करने के लिए:
SmtpSection settings = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
return settings.Network.Host;
लेकिन यह अभी भी निम्न संदेश के साथ, मध्यम विश्वास पर एक SecurityException मुझे दे रही है:
Request for ConfigurationPermission failed while attempting to access configuration section 'system.net/mailSettings/smtp'. To allow all callers to access the data for this section, set section attribute 'requirePermission' equal 'false' in the configuration file where this section is declared.
तो मैंने इस requirePermission
विशेषता का प्रयास किया, लेकिन यह नहीं पता कि इसे कहां रखा जाए।
यदि मैं इसे <smtp> नोड पर लागू करता हूं, तो मुझे एक कॉन्फ़िगरेशन त्रुटि मिलती है: "अपरिचित विशेषता 'की आवश्यकता होती है। नोट करें कि गुण नाम केस-संवेदी हैं।"
यदि मैं इसे < मेलसेटिंग > नोड पर लागू करता हूं, तो मुझे अभी भी सुरक्षा अपवाद मिलता है।
क्या इस कॉन्फ़िगरेशन अनुभाग को प्रोग्राम ट्रस्ट से मध्यम ट्रस्ट के तहत प्राप्त करने का कोई तरीका है? या मुझे बस इसे छोड़ देना चाहिए और सेटिंग को < ऐपसेटिंग > में ले जाना चाहिए?
जब भी मैं था कि मैं सेटिंग "इसे पढ़ने" की जरूरत नहीं थी। बस एक नया SmtpClient() बनाना web.config पर सेटिंग्स का उपयोग करेगा। – turtlepick