2012-03-31 6 views
5

.NET Framework 4.0의 콘솔 앱에서 실행되는 SSL이없는 기본 HTTP 바인딩을 사용하는 자체 호스팅 WCF 앱이 있습니다.WCF WebGet HTTP 리퍼러 캡처?

필자는 사람이 읽을 수있는 문자열을 "연기 테스트"로 반환하는 메서드에 WebGet 특성을 가지고 있습니다.

ASP.NET 웹 양식 페이지가있는 경우 Request.UrlReferrer 또는 ServerVariables ("HTTP_REFERER")를 사용하여 클라이언트가 리디렉션 정보를 지원하는지 확인합니다.

WCF로 어떻게 할 수 있습니까?

감사합니다.

답변

5

BasicHttpBinding을 사용하는 경우 WebGet 속성은 무시됩니다 (webHttpBindingWebHttpBehavior을 사용하는 끝점에 사용됨).

"웹"엔드 포인트 (WebHttpBinding/WebHttpBehavior)를 사용하는 경우 WebOperationContext.Current.IncomingRequest.Headers[HttpRequestHeader.Referer]을 사용할 수 있습니다.

HttpRequestMessageProperty prop; 
prop = (HttpRequestMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpRequestMessageProperty.Name]; 
var referer = prop.Headers[HttpRequestHeader.Referer] 
: 당신이 System.ServiceModel.Web.dll에 대한 참조가없는 경우, 당신은 또한 HttpRequestMessageProperty OperationContext으로부터를 사용할 수 있습니다