2011-09-30 18 views
0

初めての投稿ですので、投稿ルールを破った場合は少し気をつけてください - 私はそれらを読んでいます。C#で非asmx SOAP 1.1 Webサービスを使用してヘッダセキュリティーを使用する

私は投稿する前にしばらく検索していましたが、私が何をしようとしているかについてのガイドを見つけることができなかったので、ここに投稿すると思いました。

Javaで開発されたWebサービスを使用するには、C#.NET 3.5プログラムを作成する必要があります。 Dynamics CRMプラグインとソフトウェアの作成経験からWeb Referencesを使用して.NETでASMX Webサービスを使用する練習をしていますが、これは私には困ります。

Webサービスでは、PasswordDigest(nonceと作成されたSHA-1)、SOAPヘッダーにユーザー名トークンとタイムスタンプトークンが必要ですが、Web参照を使用していました。 Web Referenceを使用してSOAPヘッダーに追加する方法が見つかりませんでした。

私の第二の試みは、しかし、私はずっとこれで練習し、私はオンラインはあまりありませんでした見つかったチュートリアルを持っていない(このがWCFであることを、私は信じているが、私は笑おそらく間違っている)サービス参照を使用していました助けて。

WSを使用しようとするたびに、認証できないためにサーバーから拒否されます。

私の質問は、C#.NET 3.5でこれらの要件を満たすWebサービスをどのように消費するのですか?

ありがとうございました。

+0

プロキシを作成するには、[サービス参照の追加]ダイアログを開いて、サービスのURLを最後に「?wsdl」を追加します。 –

+0

"Add Web Reference"ダイアログまたはwsdl.exeでプロキシを作成した後、GetWebRequestメソッドとGetWebResponseメソッドをオーバーライドして、サーバーに送信されたヘッダーを再生できます。 –

答えて

2

IIRC、Microsoft WSE(2.0または3.0のいずれか)にはUsernameTokenという名前のものがありました。これは発信SOAPメッセージのどこかに入れる必要があり、すべて設定されています。確かに、この答えが望まれるためにたくさん去るので、私はあなたにカップルのリンクを投げると、あなたを介して苦労いただければ幸います:

http://www.codeproject.com/KB/webservices/WS-Security.aspx

http://www.reliablesoftware.com/articles/WSESecurity.html

http://www.devx.com/security/Article/15634

(そして、これは、SOAPとWSDLの欠陥がどのように実際に存在するかを示しています)。

+1

だから私は2.0に戻って私の.NETバージョンを削除し、WSE 3.0をインストールし、これを動作させるために、3番目のリンクの指示に従ってしまった。どうもありがとうございました! 好奇心の尺度として、この問題はMicrosoftかSOAP/WSDLプロトコルによって引き起こされたのでしょうか?その理由は何ですか?私は通常の.NETライブラリでこれを処理できず、代わりに古いライブラリに戻す必要がありました... – jacobappleton

+0

AFAIK、WSDLは、Webサービスをどのようにして正確に保護するかに関する十分な情報を含んでいません。決して私の経験では、多かれ少なかれ現実的なWebサービスを持っていました。(WS:*標準が存在すれば、それらはすべて多くの奇妙な方法で使われなければならないと思っていました。 –

+0

への参照ハハええ、できるだけこれらのことを使うダンクの数が多すぎるようです。あなたの助けをもう一度ありがとう! – jacobappleton

関連する問題