2013-11-02 4 views
7

में SecureString मैं एक मौजूदा SecureString कि मैं .Password का खुलासा किए बिना एक PasswordBoxमें डाल करना चाहते हैं। क्या यह किया जा सकता है? उदाहरण के लिए:रखें PasswordBox

tbPassword.SecurePassword = DecryptString(Properties.Settings.Default.proxyPassword); 

इस मामले में डिक्रिप्टस्ट्रिंग एक सिक्योरस्ट्रिंग का उत्पादन करता है। हालांकि, SecurePassword केवल पढ़ने योग्य संपत्ति है इसलिए मैं इसे मान निर्दिष्ट नहीं कर सकता।

उत्तर

8

आप नहीं कर सकते।

हालांकि, आप क्या कर सकते प्लेसहोल्डर पाठ डाल दिया जाता है यह जगह है में (यह भी "placeholder" हो सकता है, हम केवल यह प्रयोग कर रहे हैं बॉक्स में दिखाने के लिए कुछ डॉट्स बनाने के लिए)।

प्लेसहोल्डर को डालने के बाद, जब आप अपने प्रोग्राम में कहीं भी "वर्तमान पासवर्ड" प्राप्त करने के लिए जाते हैं तो पहले जांच करें कि PasswordChanged ईवेंट प्लेसहोल्डर पासवर्ड दर्ज करने के बाद निकाल दिया गया है या नहीं। घटना उपयोग निकाल दिया तो है नहीं पुराने संग्रहीत पासवर्ड, घटना PasswordBox की SecurePassword संपत्ति से उपयोग वर्तमान पासवर्ड निकाल दिया गया है।

+0

यह विफल रहता है जब उपयोगकर्ता पासवर्ड की [* पीक *] (https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/password-box) सुविधा का उपयोग करने की कोशिश करता है डिब्बा। –

+0

यह सच है, यदि आप पीक सुविधा आपको इस समाधान का उपयोग करने के लिए सक्षम नहीं होगा सक्षम करने पर योजना है। –

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