125 votes

Obtenir le référent HTTP dans ASP.NET

Je recherche un moyen rapide, facile et fiable d'obtenir le référent HTTP du navigateur en ASP.Net ( C # ). Je sais que le référent HTTP lui-même n'est pas fiable, mais je souhaite un moyen fiable d'obtenir le référent s'il est présent.

185voto

Darin Dimitrov Points 528142

Vous pouvez utiliser la propriété UrlReferrer de la requête en cours:

 Request.UrlReferrer
 

Ceci lira l’en-tête HTTP du référent à partir de la demande, qui peut être fournie ou non par le client (agent utilisateur).

36voto

NightOwl888 Points 4622
Request.Headers("Referer")

Explication

L' Request.UrlReferer va jeter un System.UriFormatException si l'en-tête HTTP referer est mal formé (ce qui peut arriver, car il n'est généralement pas sous votre contrôle).

Comme pour l'utilisation d' Request.ServerVariables, par MSDN:

Demande.Collection ServerVariables

La collection ServerVariables récupère les valeurs de certaines variables d'environnement et de demander des informations d'en-tête.

Demande.Les En-Têtes De Propriété

Obtient une collection d'en-têtes HTTP.

Je suppose que je ne comprends pas pourquoi vous préférez l' Request.ServerVariables sur Request.Headers, depuis Request.ServerVariables contient toutes les variables d'environnement ainsi que les en-têtes, où Request.Headers est une liste beaucoup plus courte qui contient uniquement les en-têtes.

Donc, la meilleure solution est d'utiliser l' Request.Headers de la collecte de lire directement la valeur. Faire attention de Microsoft avertissements sur le code HTML codage de la valeur si vous allez à l'afficher dans un formulaire.

22voto

Dismissile Points 12054

Utilisez Request.UrlReferrer property.

En dessous des scènes, je pense qu’il s’agit de vérifier la propriété ServerVariables("HTTP_REFERER") .

14voto

Tom Points 2410

Comme ceci: Propriété HttpRequest.UrlReferrer

 Uri myReferrer = Request.UrlReferrer;
string actual = myReferrer.ToString();
 

1voto

Mohsen Afshin Points 3643

Comme dans un autre fil SO, le problème est que UrlReferrer ne fonctionne pas avec les redirections, il ne fonctionne qu'avec des liens hypertextes. Dans les redirections c'est nul.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X