2011-06-14 15 views
8

मैं थोड़ा उलझन में हूँ। मैंने स्पष्ट रूप से Web.config <pages ViewStateEncryptionMode="Always" /> सेट नहीं किया है, और इसलिए this MSDN page कहता है कि इसे Auto पर डिफ़ॉल्ट होना चाहिए। This MSDN page का कहना है कि Auto को व्यूस्टेट जानकारी को एन्क्रिप्ट किया जाना चाहिए यदि नियंत्रण RegisterRequiresViewStateEncryption विधि को कॉल करके एन्क्रिप्शन अनुरोध करता है। लेकिन, मेरे किसी भी नियंत्रण में उस विधि को कॉल नहीं किया गया है। तो ऐसा लगता है कि मेरे व्यूस्टेट को वास्तव में एन्क्रिप्ट नहीं किया जाना चाहिए।क्या मेरा दृश्य एन्क्रिप्टेड है?

हालांकि, जब मैं व्यूस्टेट को विभिन्न onlineviewstatedecoders में से एक में कॉपी/पेस्ट करता हूं, तो मुझे बताया गया है कि व्यूस्टेट धारावाहिक डेटा अमान्य है। तो, क्या मेरा व्यूस्टेट एन्क्रिप्टेड है या नहीं? क्या बताने का कोई स्पष्ट तरीका है? क्या डिफॉल्ट द्वारा डिफ़ॉल्ट एएसपीनेट व्यवहार को व्यूस्टेट को एन्कोड करने के लिए बदल दिया गया है जब तक आप इसे अक्षम नहीं करते?

+2

बस एक नोट यह कहने के लिए कि ऑनलाइन व्यू स्टेट डिकोडर्स कभी-कभी "धारावाहिक डेटा अमान्य है" यदि व्यूस्टेट में उपयोगकर्ता नियंत्रण होता है, भले ही एन्क्रिप्शन का उपयोग किया जा रहा हो या नहीं। – James

उत्तर

3

यदि यह हमेशा या ऑटो पर सेट होता है, तो सभी नियंत्रण स्थिति एन्क्रिप्ट की जाएगी। RegisterRequiresViewStateEncryption पर कॉल करने वाले सभी नियंत्रण ऑटो को हमेशा/हमेशा से संबंधित एन्क्रिप्टेड किया जाएगा। यदि आपके 'कस्टम कंट्रोल' को एन्क्रिप्शन की आवश्यकता है तो इसे कॉल करें।

MSDN

पर इस देखें आप एक कस्टम नियंत्रण है कि संभावित रूप से संवेदनशील जानकारी के साथ संबंधित विकसित कर रहे हैं, तो पृष्ठ के साथ नियंत्रण रजिस्टर और देखने राज्य यह सुनिश्चित करने के लिए नियंत्रण एन्क्रिप्ट किया गया है RegisterRequiresViewStateEncryption विधि कॉल।

पूरे पृष्ठ राज्य एन्क्रिप्टेड ViewStateEncryptionMode ऑटो या हमेशा के लिए सेट है किया जाएगा।

+0

अहह। "ViewStateEncryptionMode ऑटो या हमेशा पर सेट होने पर संपूर्ण पृष्ठ स्थिति एन्क्रिप्ट की जाएगी।" मैंने यह नहीं देखा था, धन्यवाद। मुझे लगता है कि मैं इसे हमेशा अच्छे उपाय के लिए सेट कर दूंगा, लेकिन किसी भी मामले में डिफ़ॉल्ट (ऑटो) पर सेट होने पर इसे एन्क्रिप्ट किया जाना चाहिए। – Jez

0

डिफ़ॉल्ट सेटिंग्स आपके machine.config पर मिल सकती हैं, जो आपके सभी वेब ऐप्स के लिए एक सामान्य सुपर कॉन्फ़िगरेशन है। अपने web.config के साथ आप इसे ओवरराइट कर सकते हैं। आप अपनी वेबसाइट में से एक खोल सकते हैं और अंदर देख सकते हैं।

%WinDir%\Microsoft.NET\Framework\<FrameworkVersion>\CONFIG 
2

यह बल पर, यदि आप एक विकोडक से एक ही त्रुटि मिलती देखें:

यहाँ आप machine.config पा सकते हैं।

इसे मजबूर करें, देखें कि यह अब डीकोड करता है या नहीं।

मुझे लगता है कि आपको वह उत्तर देगा जो आप ढूंढ रहे हैं।

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