none
WSE3.0からWCFへの移行に伴う名前空間の変更 RRS feed

  • 質問

  • お世話になっております。
    現在WSE3.0を使用しているWebサービスをWCFを使用するよう変更を行っています。その中で、Microsoft.Web.Services3などのWSE3.0の名前空間内に定義してあるクラスを使用した機能も、WCFで実現する必要が出てきましたのでご教授いただけないかと思います。Windows開発初心者のため、用語間違いなど多々あるかと思いますが、よろしくお願いいたします。

    WCFでも実現したい機能は以下になります。

    Webサービスで受信するSOAPメッセージに対して以下の操作を行う
    1. 受信したメッセージはSOAPメッセージなのか確認
    2. SecurityTokenが含まれているか確認
    3. 含まれているSecurityTokenはUsernameTokenか確認
    4. UsernameTokenからユーザー名だけを取り出す 

    現行のWSE3.0を使用したWebサービスでは
    ・Microsoft.Web.Services3.RequestSoapContext
    ・Microsoft.Web.Services3.Security.Tokens.UsernameToken
    ・Microsoft.Web.Services3.Security.Tokens.SecurityTokenCollection
    などを使って実装しています。

    これらをWCFに移行する場合
    Microsoft.Web.Services3をSystem.ServiceModelに変更
    Microsoft.Web.Services3.SecurityをSystem.ServiceModel.Securityに変更
    上記のように単純にWCFの名前空間に切り替えればいいだけだと思っていましたが、うまくいかないようです。

    調べた結果、
    OperationContext クラス(https://msdn.microsoft.com/ja-jp/library/system.servicemodel.operationcontext(v=vs.90).aspx)
    OperationContextScope クラス(https://msdn.microsoft.com/ja-jp/library/system.servicemodel.operationcontextscope(v=vs.90).aspx)
    を利用する必要がありそうだということがわかりました。

    実際は、上記のクラスを用いて実装し直すしかないのでしょうか。
    もし、名前空間の変更など単純に済む方法などご存知の方いらっしゃいましたらご教授いただけないでしょうか。

    よろしくお願いいたします。

    --------------開発環境--------------
    Windows Server 2003
    SQL Server 2000
    Visual Studio 2008
    .NET 3.5

    -------------------------------------

    2015年9月25日 1:18