나는 다음과 같이 OperationContext 보내는 메시지 헤더에 API 키를 부착하기 위해 노력하고있어 :추가 및 데이터 검색
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 헤더가 보이지 않는 것 같습니다. 아무도 내가 잘못 가고있는 것을 볼 수 있습니까?
고마워요! 컨텍스트 범위의 평생 동안 내 서비스 호출을하지 못했기 때문에 문제가 발생했다고 생각했습니다! – Dimitar
서비스 채널이란 무엇입니까? IMyServiceChannel? – PositiveGuy
IMyServiceChannel은 클라이언트와 서버 간의 통신 채널 인터페이스입니다. –