Absolute URL vom relativen Pfad abrufen (überarbeitete Methode)

Ich bin wirklich überrascht, dass es keine native .NET-Methode gibt, um eine absolute URL von einer relativen URL abzurufen. Ich weiß, dass dies schon oft diskutiert wurde, aber noch nie auf eine zufriedenstellende Methode gestoßen ist, die dies gut handhabt. Können Sie bei der Feinabstimmung der folgenden Methode helfen?

Ich denke, alles, was ich noch tun muss, ist, das Protokoll automatisch auszuwählen, anstatt es fest zu codieren (http / https). Fehlt mir noch etwas (Vorbehalte, Leistung usw.)?

public static string GetAbsoluteUrl(string url)
    {
        //VALIDATE INPUT FOR ALREADY ABSOLUTE URL
        if (url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) 
           || url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
        { 
            return url;
        }

        //GET PAGE REFERENCE FOR CONTEXT PROCESSING
        Page page = HttpContext.Current.Handler as Page;

        //RESOLVE PATH FOR APPLICATION BEFORE PROCESSING
        if (url.StartsWith("~/"))
        {
            url = page.ResolveUrl(url);
        }

        //BUILD AND RETURN ABSOLUTE URL
        return "http://" + page.Request.ServerVariables["SERVER_NAME"] + "/" 
                         + url.TrimStart('/');
    }

Antworten auf die Frage(22)

Ihre Antwort auf die Frage