Ottenere diverse parti dell URL in C #

Spesso gli sviluppatori devono indicare parte (o parti) dell’attuale indirizzo internet per una pagina web. Ci sono migliaia di domande in linea dove chiedono come ottenere un particolare pezzo dell’URL. Per rendere più facile la vita, Microsoft ha fornito il metodo Request.Url come parte del framework ASP.NET.

Perché abbiamo bisogno di  usare Request.Url?

Ecco alcuni dei motivi dove potrebbe essere necessario utilizzare Request.Url:

  • Per leggere il nome di dominio solo senza nome della pagina o querystring;
  • Per leggere il nome del file della pagina corrente senza il collegamento del dominio;
  • Per controllare se la pagina viene pubblicata utilizzando HTTP o HTTPS;
  • Per controllare il numero della porta.

Di seguito sono elencate alcune proprietà per Request.Url con il risultato. L’URL che ho usato per testare è:
http://www.lucaroberto.com:123/RequestUri.aspx?queryStringVal=Hello

Request.Url.GetLeftPart(UriPartial.Authority)
http://www.lucaroberto.com:123
Request.Url.GetLeftPart(UriPartial.Path)
http://www.lucaroberto.com:123/RequestUri.aspx
Request.Url.GetLeftPart(UriPartial.Query)
http://www.lucaroberto.com:123/RequestUri.aspx?queryStringVal=Hello
Request.Url.GetLeftPart(UriPartial.Scheme)
http://
Request.Url.ToString
http://www.lucaroberto.com:123/RequestUri.aspx?queryStringVal=Hello
Request.Url.AbsolutePath
/RequestUri.aspx
Request.Url.AbsoluteUri
http://www.lucaroberto.com:123/RequestUri.aspx?queryStringVal=Hello
Request.Url.Authority
www.lucaroberto.com:123
Request.Url.Host
www.codepal.co.uk
Request.Url.GetComponents(UriComponents.Port, UriFormat.SafeUnescaped)
123
Request.Url.GetComponents(UriComponents.Query, UriFormat.SafeUnescaped)
queryStringVal=Hello