Heim > Backend-Entwicklung > C++ > Wie gehe ich mit URL-codierten Schrägstrichen beim ASP.NET-Routing um?

Wie gehe ich mit URL-codierten Schrägstrichen beim ASP.NET-Routing um?

Patricia Arquette
Freigeben: 2025-01-05 01:34:40
Original
803 Leute haben es durchsucht

How to Handle URL-Encoded Slashes in ASP.NET Routing?

URL-codierter Schrägstrich in der URL

Beim Versuch, auf eine URL zuzugreifen, die einen codierten Schrägstrich (/) enthält, z. B. http:// localhost:5000/Home/About/100/200, die Standard-Routing-Konfiguration stimmt möglicherweise nicht mit der Route überein.

Eins Eine mögliche Lösung besteht darin, einen Catch-All-Parameter in die URL-Vorlage aufzunehmen, wie unten gezeigt:

routes.MapRoute(
    "Default",                                                // Route name
    "{controller}/{action}/{*id}",                            // URL with parameters
    new { controller = "Home", action = "Index", id = "" });  // Parameter defaults
Nach dem Login kopieren

Diese Anpassung ermöglicht die Erfassung einer beliebigen Reihe von Pfadsegmenten im ID-Parameter, einschließlich Schrägstrichen. Allerdings ist dieser Ansatz möglicherweise nicht für alle Szenarien geeignet.

Eine weitere Option, insbesondere wenn der codierte Schrägstrich Teil eines einzelnen Parameters ist, besteht darin, eine benutzerdefinierte Codierungs- und Decodierungslogik zu implementieren. Dies kann durch eine benutzerdefinierte Klasse wie die unten bereitgestellte erreicht werden:

public class UrlEncoder
{ 
    public string URLDecode(string  decode)
    {
        if (decode == null) return null;
        if (decode.StartsWith("="))
        {
            return FromBase64(decode.TrimStart('='));
        }
        else
        {
            return HttpUtility.UrlDecode( decode) ;
        }
    }

    public string UrlEncode(string encode)
    {
        if (encode == null) return null;
        string encoded = HttpUtility.PathEncode(encode);
        if (encoded.Replace("%20", "") == encode.Replace(" ", ""))
        {
            return encoded;
        }
        else
        {
            return "=" + ToBase64(encode);
        }
    }

    public string ToBase64(string encode)
    {
        Byte[] btByteArray = null;
        UTF8Encoding encoding = new UTF8Encoding();
        btByteArray = encoding.GetBytes(encode);
        string sResult = System.Convert.ToBase64String(btByteArray, 0, btByteArray.Length);
        sResult = sResult.Replace("+", "-").Replace("/", "_");
        return sResult;
    }

    public string FromBase64(string decode)
    {
        decode = decode.Replace("-", "+").Replace("_", "/");
        UTF8Encoding encoding = new UTF8Encoding();
        return encoding.GetString(Convert.FromBase64String(decode));
    }
}
Nach dem Login kopieren

Mit dieser Klasse können Sie Zeichenfolgen auf benutzerdefinierte Weise kodieren und dekodieren, um sicherzustellen, dass Sonderzeichen wie Schrägstriche korrekt verarbeitet werden und gleichzeitig die Lesbarkeit gewahrt bleibt Benutzerfreundlichkeit.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit URL-codierten Schrägstrichen beim ASP.NET-Routing um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage