3

私はこのcodeprojectサンプルに従いました。JQueryセクションの wsHttpBindingで公開されたサービス
の消費では、次のように記述されています。

「wsHttpBinding」バインディングで公開されたサービスは、WS-Security ofWS-*ファミリーのWebサービス仕様を実装します。バインディングはセキュリティを使用しているため、リクエストは拒否されます。JQueryの最後にWS-Securityを実装せずにサービスを呼び出すことはできません。したがって、サービスメソッドを呼び出すには、セキュリティを妥協する必要があります。

そして彼らは非安全な<wsHttpBinding>エンドポイントを実装しています。

しかし、私は自分の<wsHttpBinding>意志を望んでいます<security mode="Message">
このオフコースは機能せず、次のエラーが返されます。

メッセージを処理できませんでした。これは、アクション「http://www.enghouse.com/CosmoCom/WebAdminAPIServiceLibrary/IQueue/GetAllQueues」が正しくないか、メッセージに無効または期限切れのセキュリティコンテキストトークンが含まれているか、バインディング間に不一致があることが原因である可能性があります。非アクティブのためにサービスがチャネルを中止した場合、セキュリティコンテキストトークンは無効になります。サービスがアイドルセッションを途中で中止しないようにするには、サービスエンドポイントのバインディングで受信タイムアウトを増やします。

これを変更すると<security mode="None">、完全に機能します。

だから私の質問は、どうすれば実装でき<security mode="Message">ますか?
私は何をする必要がありますか?

ありがとう!

4

1 に答える 1

2

Ws.js を確認してください。ws-security の実装を支援する JavaScript ライブラリです。

個人的には、ソース コードを持っていない既存の WCF サービスと Web クライアントを統合する必要がある場合にのみ、これを行います。オーバーヘッドが大きすぎて、Web クライアントの SOAP プロトコルと WCF セキュリティを維持するには、追加の利点がありません。このサービスのソースを制御する場合は、ASP.NET Web APIを使用して Web クライアントに REST API を提供し、HTTP 基本セキュリティで SSL を使用します。

于 2012-11-06T14:00:53.913 に答える