2013-08-02 1 views
1

현재 우리는 99 % REST/JSON 인 Web API에 ServiceStack을 사용하고 있지만 SOAP 끝점을 허용하는 데 필요한 새 메시지가 하나 있습니다. (클라이언트가 구형 BizTalk 서버이고 SOAP 12가 필요함)이 메시지 이외의 다른 모든 것에 대한 SOAP을 방지하고자합니다. 단일 메시지 또는 서비스에서 SOAP 기능을 활성화하는 방법이 있습니까? SOAP을 지정할 수있는 범위는 무엇입니까?ServiceStack의 하나 이상의 메시지에서 SOAP을 선택적으로 허용합니다.

AppHost Configure()에서 EnableFeatures = Feature.All.Remove(Feature.Csv | Feature.Html | Feature.Jsv | Feature.Soap)으로 허용하지 않을 기능을 제거했지만 SOAP12 WSDL을 노출하는 기능이 제거되었습니다. 반대로, Feature.Soap을 제거하지 않으면 우리가 예방해야하는 모든 POST 메시지에 대해 SOAP을 사용할 수 있습니다.

도움을 주시면 감사하겠습니다.

답변

1

내 질문에 대한 답변을 찾았습니다. ServiceStack에서는 사용 가능한 끝점 채널을 지정하는 방법을 제공하고 ServiceStack.ServiceHost.RestrictAttribute (https://github.com/ServiceStack/ServiceStack/wiki/Security)을 사용하여 누구에게 사용할 지 지정합니다. 단지 SOAP12 내 메시지의 가시성을 제한하기 위해 :

//Request DTO 
[DataContract(Namespace = Namespaces.Messages.NS_2013_01)] 
[Restrict(EndpointAttributes.Soap12)] 
public class Hello 
{ 
    public string Name { get; set; } 
} 

내 메타 데이터의 가시성을 적절하게 제한 : enter image description here

관련 문제