5

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

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

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

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

谢谢。

4

1 回答 1

6

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

如果您使用的是“网络”端点(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]
于 2012-03-31T14:39:06.910 回答