WCF WebGet捕获HTTP推荐人?

时间:2012-03-31 03:15:29

标签: wcf http redirect webget

我有一个使用基本HTTP绑定的自托管WCF应用程序,没有SSL,在.NET Framework 4.0上的控制台应用程序中运行。

我在一个方法上有一个WebGet属性,将一个人类可读的字符串作为“冒烟测试”返回。

如果我有一个ASP.NET webforms页面,我会使用Request.UrlReferrer或ServerVariables(“HTTP_REFERER”)来查看客户是否自愿提供重定向信息。

我如何使用WCF做到这一点?

感谢。

1 个答案:

答案 0 :(得分:6)

如果您使用的是BasicHttpBinding,则WebGet属性可能会被忽略(它用于使用webHttpBindingWebHttpBehavior的端点。

如果您正在使用“Web”端点(WebHttpBinding / WebHttpBehavior),则可以使用WebOperationContext.Current.IncomingRequest.Headers[HttpRequestHeader.Referer]。如果您没有对System.ServiceModel.Web.dll的引用,您还可以使用HttpRequestMessageProperty中的OperationContext

HttpRequestMessageProperty prop;
prop = (HttpRequestMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpRequestMessageProperty.Name];
var referer = prop.Headers[HttpRequestHeader.Referer]