हां, आपके आवेदन में कहीं भी सादा पाठ में पासवर्ड संग्रहीत करना असुरक्षित है। ऐसा मत करो! वैकल्पिक रूप से आप सकता है
Encrypting and Decrypting ApplicationConfigSections
:
इसके बजाय, आप पासवर्ड एन्क्रिप्टेड अपने App.config फ़ाइल में (एक विन्यास फाइल में या कहीं और, उदाहरण के लिए machine.config) संग्रहीत करना चाहिए प्रमाण पत्र के लिए उपयोगकर्ता को रनटाइम पर पूछें।
यदि आप स्पष्ट रूप से पासवर्ड प्रदान करने से बचना चाहते हैं, तो आप वर्तमान में लॉग ऑन उपयोगकर्ता के विंडोज प्रमाणीकरण के माध्यम से प्रमाणित कर सकते हैं। इसके लिए आप मेल भेजने के लिए SmtpClient.UseDefaultCredentials
का उपयोग कर सकते हैं। बेशक यह केवल तभी काम करता है जब SmtpServer उपयोगकर्ताओं के विंडोज प्रमाण-पत्रों को पहचानता है।
आप मैन-इन-द-मिडल हमलों और पैकेट सूँघने से सुरक्षित होना चाहते हैं, तो आप प्रमाणीकरण डाटा संचारित करने के लिए SSL का उपयोग करना चाहिए। आप इसे enabling SSL in the configuration द्वारा कर सकते हैं या बस संपत्ति को सेट कर सकते हैं: SmtpClient.EnableSsl
। (.NET> = 4.0)
आपको पासवर्ड एन्क्रिप्ट करना होगा क्योंकि किसी भी सादे स्ट्रिंग को आसानी से परावर्तक जैसे टूल का उपयोग करके देखा जाएगा। मैं या तो उपयोगकर्ता को संकेत दूंगा, या कॉन्फ़िगरेशन प्रकार फ़ाइल में एन्क्रिप्टेड पासवर्ड स्टोर करूंगा। –
एक ** सेवा खाता ** बनाएं जो ई-मेल भेज सकता है (लेकिन अधिक कुछ नहीं) और प्रमाण-पत्र एन्क्रिप्ट करें? – SpaceBison