Request.Headers["Referer"]
Explication
La propriété Request.UrlReferrer
lancera une System.UriFormatException
si l'en-tête referer HTTP est mal formée (ce qui peut arriver car elle n'est généralement pas sous votre contrôle).
Par conséquent, la propriété Request.UrlReferrer
n'est pas fiable à 100% - elle peut contenir des données qui ne peuvent pas être analysées en tant que classe Uri
. Pour garantir que la valeur est toujours lisible, utilisez plutôt Request.Headers["Referer"]
.
Concernant l'utilisation de Request.ServerVariables
comme d'autres l'ont suggéré ici, selon MSDN :
Collection Request.ServerVariables
La collection ServerVariables récupère les valeurs des variables d'environnement prédéfinies et des informations d'en-tête de requête.
Propriété Request.Headers
Obtient une collection d'en-têtes HTTP.
Request.Headers
est un meilleur choix que Request.ServerVariables
, car Request.ServerVariables
contient toutes les variables d'environnement ainsi que les en-têtes, tandis que Request.Headers
est une liste beaucoup plus courte ne contenant que les en-têtes.
La solution la plus fiable est donc d'utiliser la collection Request.Headers
pour lire directement la valeur. Veuillez toutefois tenir compte des avertissements de Microsoft concernant l'encodage HTML de la valeur si vous devez l'afficher sur un formulaire.
2 votes
Possible duplicate de Comment obtenir l'URL du référent dans une action ASP.NET MVC ?
0 votes
Pour Asp.Net Core, consultez Comment puis-je obtenir l'URL de référence dans ASP.NET Core MVC ?