1

現在、99% REST/JSON である Web API に ServiceStack を使用していますが、SOAP エンドポイントを許可する必要がある新しいメッセージが 1 つあります。(クライアントは古い BizTalk サーバーであり、SOAP 12 が必要です。 ) この 1 つのメッセージ以外のすべてで SOAP を防止したいと考えています。単一のメッセージまたはサービスで SOAP 機能を有効にする方法はありますか? SOAPを指定できる範囲は?

AppHost の Configure() で、許可しない機能を削除しましたEnableFeatures = Feature.All.Remove( Feature.Csv | Feature.Html | Feature.Jsv | Feature.Soap )が、これにより SOAP12 WSDL を公開する機能が削除されます。反対に、削除しないFeature.Soapと、防止する必要があるすべての POST メッセージに対して SOAP が有効になります。

どんな助けでも大歓迎です。

4

1 に答える 1

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; }
}

私のメタデータの可視性は適切に制限されています: ここに画像の説明を入力

于 2013-08-06T05:34:01.103 に答える