Windows 서비스에서 호스팅되는 WCF REST 서비스가 있으며 모든 응답과 함께 Access-Control-Allow-Origin HTTP 헤더 (CORS 부분으로 정의 됨)를 보내려고합니다.WCF REST 서비스에서 CORS 지원
나의 시도 솔루션은 IDispatchMessageInspector 구현 내에서 다음과 같은 것이 었습니다 :
public void BeforeSendReply(ref Message reply, object correlationState)
{
var httpResponse = reply.Properties["httpResponse"] as HttpResponseMessageProperty;
if (httpResponse != null)
{
// test of CORS
httpResponse.Headers["Access-Control-Allow-Origin"] = "*";
}
}
는 일반적으로이 작업 것이다, 그러나 불행하게도 내 서비스는 요청이 허가없이 들어올 때 즉, HTTP basic authorization를 사용 WCF는 자격 증명을 묻는 401 응답을 자동으로 보냅니다. 아쉽게도 WCF는이 초기 교환 도중 IDispatchMessageInspector를 호출하지 않으므로 Access-Control-Allow-Origin 헤더가 초기 교환에 추가되지 않습니다.
브라우저에서 서비스를 호출 할 때 문제가 발생합니다. CORS는 원본 도메인이 Access-Control-Allow-Origin 응답 헤더 (*가 모든 도메인과 일치 함)에 나열된 도메인과 일치하는 경우에만 교차 출처 요청이 허용되어야한다고 지정합니다. 불행하게도 브라우저가 Access-Control-Allow-Origin 헤더없이 초기 401 응답을 볼 때 액세스가 차단됩니다 (same origin policy에 따라).
WCF에서 자동으로 보낸 초기 401 응답에 헤더를 추가하는 방법이 있습니까?
어디서나 이걸 가지고 있었습니까? –