Ponieważ Google przeniesie Cię do tego postu, szukając C# Web API Referrer
tutaj jest wiele: Web API
wykorzystuje inny typ Request
od normalnego MVC Request
o nazwie HttpRequestMessage
, która nie obejmuje UrlReferrer
. Ponieważ zwykłe Web API
żądanie nie zawiera tych informacji, jeśli naprawdę ich potrzebujesz, musisz nakłonić klientów do zrobienia wszystkiego, aby je uwzględnić. Chociaż możesz uczynić to częścią swojego API Object
, lepszym sposobem jest użycie Headers
.
Po pierwsze, możesz rozszerzyć, HttpRequestMessage
aby udostępnić UrlReferrer()
metodę:
public static string UrlReferrer(this HttpRequestMessage request)
{
return request.Headers.Referrer == null ? "unknown" : request.Headers.Referrer.AbsoluteUri;
}
Następnie klienci muszą ustawić Referrer Header
do swoich API Request
:
// Microsoft.AspNet.WebApi.Client
client.DefaultRequestHeaders.Referrer = new Uri(url);
A teraz Web API Request
zawiera dane strony odsyłającej, do których możesz uzyskać dostęp w ten sposób z Web API
:
Request.UrlReferrer();