WCF AfterReceiveRequest获取标题
我刚刚开始拦截对我的WCF服务的请求 我使用如下java代码调用web服务(简短版本) 我正在接收请求,但无法获取/找到消息请求中的标题。我试过这样的方法:WCF AfterReceiveRequest获取标题,wcf,idispatchmessageinspector,Wcf,Idispatchmessageinspector,我刚刚开始拦截对我的WCF服务的请求 我使用如下java代码调用web服务(简短版本) 我正在接收请求,但无法获取/找到消息请求中的标题。我试过这样的方法: public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanc
public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext)
{
int headerIndex = request.Headers.FindHeader("Username", string.Empty);
var username = request.Headers["Username"]
return null;
}
但我总是以-1或异常结束。正确的方法是什么?我在Java方面也做错了吗?类中的
Headers
属性将为您提供SOAP头;您要查找的是HTTP头。要获得这些信息,您应该使用HttpRequestMessageProperty
:
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
var prop = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
var userName = prop.Headers["Username"];
return null;
}
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
var prop = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
var userName = prop.Headers["Username"];
return null;
}