क्यों निम्न URL मुझे नीचे आईआईएस त्रुटियों देना है:त्रुटि प्राप्त करना 400/404 - HttpUtility.UrlEncode पूर्ण स्ट्रिंग एन्कोडिंग नहीं है?
ए) http://192.168.1.96/cms/View.aspx/Show/Small+test '
A2) http://192.168.1.96/cms/View.aspx/Show/Small%20test' < - यह काम करता है, लेकिन नहीं() HttpUtility.UrlEncode से परिणाम है
बी) http://192.168.1.96/cms/View.aspx/Show/ '% 26 $% 23funky ** !! ~' ए के लिए '+ पेज
त्रुटि:
HTTP Error 404.11 - Not Found
The request filtering module is configured to deny a request that contains a double escape sequence.
बी के लिए
त्रुटि:
HTTP Error 400.0 - Bad Request
ASP.NET detected invalid characters in the URL.
के बाद/शो यूआरएल के अंतिम भाग/परिणाम माइक्रोसॉफ्ट को इसे सही ढंग से एनकोड यूआरएल है अनुसार, के बाद पाठ HttpUtility.UrlEncode() इतना के माध्यम से भेजा जा रहा है।
यदि मैं HttpUtility.UrlPnEncode() के बजाय HttpUtility.UrlPathEncode() उपयोगकर्ता को A2 परिणाम प्राप्त करता हूं।
http://192.168.1.96/TVCMS-CVJZ/cms/View.aspx/Show/ '& $ # फंकी ** !! ~' '% 20page
जो अभी भी गलत है: लेकिन बी की तरह लग रही समाप्त होता है। क्या माइक्रोसॉफ्ट जानता है कि एनकोड यूआरएल कैसे करें? क्या कोई ऐसा कार्य है जिसने इसे सही तरीके से करने के लिए लिखा है?
संपादित करें:
मैं अपने खुद के एनकोडर लिखा है:
static public string UrlEncode(string encode)
{
if (encode == null) return null;
string encoded = "";
foreach (char c in encode)
{
int val = (int)c;
if ((val >= 48 && val <= 57) || (val >= 65 && val <= 90) || (val >= 97 && val <= 122))
encoded += c;
else
encoded += "%" + val.ToString("X");
}
return encoded;
}
समारोह ठीक बी के लिए परिणाम ऊपर A2 के साथ काम करता है:
http://192.168.1.96/cms/View.aspx/Show/%27%26%24%23funky%2A%2A%21%21~%27%27%20page
लेकिन भले ही यह एक अच्छा वैध यूआरएल आईआईएस जैसा दिखता है फिर भी मुझे
HTTP त्रुटि 400.0 - खराब अनुरोध एएसपी.NET ने URL में अमान्य वर्णों का पता लगाया।
बी पूरी तरह से urlencoded प्रतीत नहीं होता है। – marcog
@marcog - जो मैं भी सोच रहा था, लेकिन इसका नतीजा यह है: PageID = HttpUtility.UrlEncode (पेजआईडी); जहां पेजआईडी = "'और $ # फंकी ** !! ~' 'पृष्ठ' – Justin808
'% 27% 26% 24% 23funky% 2 ए% 2 ए% 21% 21% 7 ई% 27% 27% 20 पृष्ठ' यह होना चाहिए । मुझे नहीं पता कि यह काम नहीं कर सकता है। – marcog