【发布时间】:2011-12-02 00:13:24
【问题描述】:
我正在尝试将 api 密钥附加到 OperationContext 传出消息标头,如下所示:
public static void AddApikeyToHeader(string apikey, IContextChannel channel, string address)
{
using (OperationContextScope scope = new OperationContextScope(channel))
{
MessageHeader header = MessageHeader.CreateHeader("apikey", address, apikey);
OperationContext.Current.OutgoingMessageHeaders.Add(header);
}
}
但是我不知道如何在服务器端检索标头。我正在使用服务授权管理器,并获取当前的操作上下文并尝试像这样检索标头:
public string GetApiKey(OperationContext operationContext)
{
var request = operationContext.RequestContext.RequestMessage;
var prop = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
return prop.Headers["apikey"];
}
但那里没有附加 apikey 标头。此外,在我检查 operationContext 时进行调试时,我似乎无法在任何地方看到我的 apikey 标头。谁能看出我哪里出错了?
【问题讨论】:
标签: c# wcf asp.net-mvc-3