2008-12-04 9 views
10

मेरे पास कुछ सवाल हैं कि एएसपीनेट 3.5 में कब और कैसे एन्क्रिप्ट किया गया है। उदाहरण के लिए, अगर मैं तरह मेरे web.config में एक machinekey प्रविष्टि: decryptionKey = "AutoGenerate, IsolateApps" सत्यापन = "एईएस" डिक्रिप्शन = "ऑटो" />एएसपीनेट व्यूस्टेट एन्क्रिप्शन

viewstate इस बिंदु पर एन्क्रिप्टेड है ? या मुझे पृष्ठ अनुभाग में viewStateEncryptionMode निर्दिष्ट करने की आवश्यकता है?

साथ ही, क्या एक फॉर्म प्रमाणीकरण कुकी एन्क्रिप्ट करना संभव है, लेकिन एक ही समय में व्यूस्टेट एन्क्रिप्ट नहीं करना है?

किसी भी मदद के लिए धन्यवाद।

उत्तर

12

पृष्ठ पर नियंत्रण अनुरोध कर सकते हैं कि एन्क्रिप्शन व्यूस्टेट के लिए उपयोग किया जाए, लेकिन यह अनुरोध पेज सेटिंग द्वारा ओवरराइड किया जा सकता है।

व्यूस्टेट एन्क्रिप्शन मोड गणना में तीन मान हैं: ऑटो, हमेशा, और कभी नहीं। डिफ़ॉल्ट मान ऑटो है।

ViewStateEncryptionMode.Auto

इस मोड में, ASP.NET यदि पृष्ठ पर किसी भी नियंत्रण यह अनुरोध करता है एक पृष्ठ के लिए ViewState एन्क्रिप्ट करेगा। ध्यान दें कि इसका मतलब यह है कि सभी व्यूस्टेट एन्क्रिप्टेड हैं, न केवल नियंत्रण के लिए व्यूस्टेट जो अनुरोध करता है। एन्क्रिप्शन से जुड़े प्रदर्शन लागत का एक बड़ा हिस्सा ओवरहेड में है। इसलिए पूरे व्यूस्टेट को एन्क्रिप्ट करना अलग-अलग एन्क्रिप्शन ऑपरेशन करने से तेज़ है यदि एक से अधिक नियंत्रण अनुरोध करता है।

ViewStateEncryptionMode.Never

आप उम्मीद, इस मोड में ASP.NET ViewState एन्क्रिप्ट नहीं करेगी, भले ही आवेदन एन्क्रिप्शन और पृष्ठ के नियंत्रण के लिए सेट कर दिया जाता हैं के रूप में यह अनुरोध किया है। यदि आप जानते हैं कि पृष्ठ में शामिल कोई भी डेटा एन्क्रिप्ट करने की आवश्यकता नहीं है, तो मोड को कभी भी सेट करने के लिए सुरक्षित हो सकता है। हालांकि, इस बिंदु पर दस्तावेज़ के लिए व्यूस्टेट में सहेजे जा रहे कार्यों को प्रकट करने के लिए नियंत्रण के बारे में दुर्लभ है, इसलिए यदि आप संवेदनशील डेटा का खुलासा कर सकते हैं तो कोई सावधान रहना चाहिए।

ViewStateEncryptionMode.Always

इस मोड में, ASP.NET पृष्ठ में एक नियंत्रण के लिए प्रतीक्षा नहीं करता है एन्क्रिप्शन अनुरोध करने के लिए। व्यूस्टेट हमेशा एन्क्रिप्ट किया जाता है। संवेदनशील डेटा के साथ काम करते समय, एन्क्रिप्शन का उपयोग करने के लिए यह एक अच्छा अभ्यास है।

स्रोत: http://msdn.microsoft.com/en-us/library/aa479501.aspx