में एक URL में एक आईडी को कूटबद्ध मैं यूआरएल में एन्क्रिप्टेड आईडी सांकेतिक शब्दों में बदलना करने का प्रयास कर रहा हूँ। इस तरह: http://www.calemadr.com/Membership/Welcome/9xCnCLIwzxzBuPEjqJFxC6XJdAZqQsIDqNrRUJoW6229IIeeL4eXl5n1cnYapg+NASP.NET MVC
हालांकि, यह या तो सही ढंग से एन्कोड नहीं करता और मैं एन्क्रिप्शन में स्लैश '/' मिलता है या मैं आईआईएस से प्राप्त करते हैं और त्रुटि: अनुरोध को छानने मॉड्यूल एक अनुरोध शामिल है कि अस्वीकार करने के लिए कॉन्फ़िगर किया गया है एक डबल एस्केप अनुक्रम।
मैं अलग एन्कोडिंग की कोशिश की है, प्रत्येक में विफल रहता है:
- HttpUtility.HtmlEncode
- HttpUtility.UrlEncode
- HttpUtility.UrlPathEncode
- HttpUtility.UrlEncodeUnicode
अद्यतन
समस्या तब थी जब मैंने एक ग्रिड एन्क्रिप्ट किया और इसे बेस 64 स्ट्रिंग में परिवर्तित कर दिया, इसमें असुरक्षित यूआरएल वर्ण होंगे। बेशक जब मैंने असुरक्षित अक्षर आईआईएस (7.5/विंडोज 7) वाले यूआरएल पर नेविगेट करने की कोशिश की तो वह उड़ाएगा। यूआरएल बेस 64 IIS में स्ट्रिंग को उठाएंगे और त्रुटि एन्क्रिप्टेड (अनुरोध को छानने मॉड्यूल एक अनुरोध है कि एक डबल एस्केप अनुक्रम है अस्वीकार करने के लिए कॉन्फ़िगर किया गया है।) एन्कोडिंग। मुझे यकीन नहीं है कि यह डबल एन्कोडेड तारों का पता कैसे लगाता है लेकिन ऐसा हुआ।
बेस 64 एन्क्रिप्टेड स्ट्रिंग को एन्कोड करने के लिए उपरोक्त विधियों को आजमाने के बाद। मैंने बेस 64 एन्कोडिंग को हटाने का फैसला किया। हालांकि यह एन्क्रिप्टेड पाठ को बाइट [] के रूप में छोड़ देता है। मैंने बाइट [] को UrlEncoding करने की कोशिश की, यह httpUtility.Encode विधि को लटकाने वाले अधिभारों में से एक है। फिर, जबकि यह यूआरएल इनकोडिंग किया गया था, आईआईएस इसे पसंद नहीं किया और एक परोसा "पृष्ठ नहीं मिला।"
नेट के चारों ओर खुदाई के बाद मैं HexEncoding/Decoding कक्षा में आया। एन्क्रिप्टेड बाइट्स में हेक्स एन्कोडिंग को लागू करने से चाल चल रही है। आउटपुट यूआरएल सुरक्षित है। दूसरी तरफ, मुझे हेक्स तारों को डीकोड करने और डिक्रिप्ट करने में कोई समस्या नहीं है।
आपका अपडेट रास्ता जवाब से बेहतर है। और अगर आप Base64 इनकोडिंग यूआरएल है कि सुरक्षित हैं चाहते हैं, यह पढ़ें: http://stackoverflow.com/a/10858198/237858 – kape123