Próbuję podłączyć klucz API do OperationContext wychodzącego nagłówka wiadomości, co następuje:dodawania i usuwania danych z kontekstu żądanie
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);
}
}
ale nie mam pojęcia jak pobrać nagłówek po stronie serwera . Używam menedżera autoryzacji usługi i uzyskać bieżący kontekst operacyjny i spróbować odzyskać nagłówek tak:
public string GetApiKey(OperationContext operationContext)
{
var request = operationContext.RequestContext.RequestMessage;
var prop = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
return prop.Headers["apikey"];
}
ale nie ma nagłówka apikey przymocowany tam. Ponadto podczas debugowania podczas sprawdzania operacjiContext nie widzę nagłówka apikey w dowolnym miejscu. Czy ktoś może zobaczyć, gdzie idę źle?
Dzięki! Zorientowałem się, że mam problem, ponieważ nie wykonywałem usługi przez cały czas trwania kontekstu! – Dimitar
Co to jest kanał usług? IMyServiceChannel? – PositiveGuy
IMyServiceChannel to interfejs kanału komunikacyjnego między klientem a serwerem. –