2016-09-07 10 views
-1

Windows認証済みの既存のWebサービス(SOAP/XML)があります。匿名認証を持つ新しいWCFサービスを追加しています。 WCFサービスから既存のWebサービスから関数を呼び出すと、次のエラーが発生します。WCFサービスからのWebサービス呼び出し

要求がHTTPステータス401:Unauthorizedで失敗しました。

既存のサービスを問題なく呼び出す他のコンソールとWebアプリケーションがあります。

UseDefautlCredentialsTrueに設定してみましたが、違いはありません(WS.UseDefaultCredentials = True)。 HTTPリクエストは、クライアント認証方式「匿名」と不正である

は、Web参照とは対照的に、サービス参照として、既存のサービスを追加しようと、私は別のエラーを取得します。サーバーから受信した認証ヘッダーは 'Negotiate、NTLM'でした。

私は実際にAD認証されているので、既存のWebサービスで匿名に認証を変更したくないです。

本当に助けていただければ幸いです。どうもありがとう。

+0

投稿するコードはありますか? –

+0

@LB 新EcomWS.EcometryPaymentとしてはかなりまっすぐ進む.... 薄暗いecomWS 新のDataTableとして暗いecomOrdDtTab ecomWS.UseDefaultCredentials = Trueの ecomOrdDtTab = ecomWS.GetEcometryOrders – TheRaoMeister

答えて

0

あなたの問題はダブルホップと呼ばれる問題です。 いくつかのオプションがあります。ケルベロスを使用し、石鹸サービスを呼び出しているか、あなたのwcfサービスを偽装しているときにあなたのコードに有効な資格を渡しますが、テストする必要があります。 <serviceAuthorization impersonateCallerForAllOperations="true" />

+0

おかげで、資格情報を作成することがないことを意味しますそれを既存のWebサービスに追加します。私は ''を試して、それを動作させるために ''を設定しなければなりませんでした。 >必要な偽装レベルが指定されていないか、提供されている偽装レベルが無効です。 また、私は ''のように 'endpointBehavior'を設定しようとしましたが、これは役に立たなかった。 残念ながら、Kerberosまたは資格を渡すことはオプションではありません。 – TheRaoMeister

関連する問題