WCF WebGet捕获HTTP推荐人?

Sno*_*owy 5 wcf redirect http webget

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

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

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

我怎么能用WCF做到这一点?

谢谢.

car*_*ira 6

如果您正在使用BasicHttpBinding,WebGet则可能会忽略该属性(它用于使用webHttpBinding和的端点WebHttpBehavior).

如果您使用的是"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]
Run Code Online (Sandbox Code Playgroud)