在ServiceStack中的一个或多个消息上有选择地允许SOAP

时间:2013-08-02 00:35:28

标签: soap servicestack

我们目前正在使用ServiceStack作为我们的web api,这是99%的REST / JSON但是我们需要一个允许SOAP端点的新消息。 (客户端是较旧的BizTalk服务器,需要SOAP 12。)我们希望除了这一条消息之外的其他所有内容都阻止SOAP。有没有办法在单个消息或服务上启用SOAP功能?可以指定SOAP的范围是什么?

在我们的AppHost Configure()中,我们已经删除了我们想要禁止使用EnableFeatures = Feature.All.Remove( Feature.Csv | Feature.Html | Feature.Jsv | Feature.Soap )的功能,但是这使我们无法公开SOAP12 WSDL。另一方面,不删除Feature.Soap为我们需要阻止的所有POST消息启用SOAP。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我找到了问题的答案。 ServiceStack提供了一种方法,用于指定可用的端点通道以及使用ServiceStack.ServiceHost.RestrictAttributehttps://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