我有一个使用基本HTTP绑定的自托管WCF应用程序,没有SSL,在.NET Framework 4.0上的控制台应用程序中运行。
我在一个方法上有一个WebGet属性,将一个人类可读的字符串作为“冒烟测试”返回。
如果我有一个ASP.NET webforms页面,我会使用Request.UrlReferrer或ServerVariables(“HTTP_REFERER”)来查看客户是否自愿提供重定向信息。
我如何使用WCF做到这一点?
感谢。
答案 0 :(得分: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]