ASP.Net ( C # ) 에서 브라우저의 HTTP Referrer 를 가져 오는 빠르고 쉽고 안정적인 방법을 찾고 있습니다. 나는 HTTP 리퍼러 자체가 신뢰할 알고 있지만 나는 경우 리퍼러를 얻기의 신뢰할 수있는 방법할까요 이다 선물을.
답변
현재 요청 의 UrlReferrer 속성을 사용할 수 있습니다 .
Request.UrlReferrer
클라이언트 (사용자 에이전트)가 제공하거나 제공하지 않을 수있는 요청에서 Referer HTTP 헤더를 읽습니다 .
답변
Request.UrlReferrer
속성을 사용하십시오 .
장면 아래에서는 단지 ServerVariables("HTTP_REFERER")
속성을 확인하는 것 입니다.
답변
Request.Headers["Referer"]
설명
Request.UrlReferer
속성은이 발생합니다 System.UriFormatException
리퍼러 HTTP 헤더 형식이 잘못된 경우 (그것이 당신의 통제하에 일반적으로되지 않기 때문에 어떤 일이 일어날 수 있습니다.)
사용에 관해서 Request.ServerVariables
는 MSDN에 따라 다음을 수행하십시오.
Request.ServerVariables 컬렉션
ServerVariables 컬렉션은 미리 결정된 환경 변수의 값과 요청 헤더 정보를 검색합니다.
Request.Headers 속성
HTTP 헤더 컬렉션을 가져옵니다.
Request.Headers
는 헤더뿐만 아니라 모든 환경 변수를 포함하기 Request.ServerVariables
때문에 보다 나은 선택 Request.ServerVariables
입니다. 여기서는 헤더 Request.Headers
만 포함하는 훨씬 더 짧은 목록입니다.
따라서 가장 좋은 해결책은 Request.Headers
컬렉션을 사용 하여 값을 직접 읽는 것입니다. 그러나 양식에 표시하려는 경우 값을 인코딩하는 HTML에 대한 Microsoft의 경고에 유의하십시오.
답변
다음과 같이 : HttpRequest.UrlReferrer 속성
Uri myReferrer = Request.UrlReferrer;
string actual = myReferrer.ToString();
답변
나는 .Net Core 2 mvc를 사용하고 있는데, 이것은 나를 위해 작동합니다 (미리보기 페이지를 얻기 위해) :
HttpContext.Request.Headers["Referer"];
답변
Google은 C# Web API Referrer
거래를 검색 할 때이 게시물로 이동하기 때문에를 포함하지 않는 일반 호출 Web API
과 다른 유형을 사용합니다 . 정상적인 요청에는이 정보가 포함되어 있지 않으므로 실제로 필요한 경우 클라이언트가이를 포함하도록해야합니다. 이것을 귀하의 일부로 만들 수 있지만 더 나은 방법은를 사용하는 것 입니다.Request
MVC Request
HttpRequestMessage
UrlReferrer
Web API
API Object
Headers
먼저 확장 HttpRequestMessage
하여 UrlReferrer()
메서드 를 제공 할 수 있습니다 .
public static string UrlReferrer(this HttpRequestMessage request)
{
return request.Headers.Referrer == null ? "unknown" : request.Headers.Referrer.AbsoluteUri;
}
그런 다음 클라이언트가 설정해야 Referrer Header
자신에게 API Request
:
// Microsoft.AspNet.WebApi.Client
client.DefaultRequestHeaders.Referrer = new Uri(url);
이제 Web API Request
에는 다음과 같이 액세스 할 수있는 리퍼러 데이터가 포함됩니다 Web API
.
Request.UrlReferrer();
답변
string referrer = HttpContext.Current.Request.UrlReferrer.ToString();