2011-07-14 13 views
0

WSDualHttpBindingを使用してWCFサービスを作成しました。セキュリティモードは指定されていないため、WSDualHttpSecurityMode.Messageに設定されています。メッセージセキュリティモードのWCFサービスでの匿名関数呼び出し

それは許可されている資格情報とクライアントからサーバに接続し、正常に動作します。

私は許可されていない資格情報を持つサーバーに接続すると、私はSecurityNegotiationExceptionを取得します。

ザッツすべての罰金は、私が今、何をしたいのか、匿名で呼ばれるように許可されているサービスでは、1つの機能があることです。

だから私は、サービスを呼び出して、私の資格が許可されていないとき、私はのgetDescription(という関数を呼び出すようにしたい)私にサービスの説明を返すようしてみたいと思います。

なぜなら、私たちはいくつかのサービスをホストしており、それらをブロードキャストで発見するからです。クライアントが許可されていないサービスがある場合、サービスを再構成することによって、この問題を克服するために、サービスの詳細を表示する必要があります。

答えて

0

認証は、WCFでも、操作ユーザが呼ばれることを知っている前に、例外が発射されるので、それはできませんボックスの機能のうちで、あなたのように、操作のいずれか長い時間前に実行されます。ユーザー "権限"に基づく操作の実行は認証に属し、認証されたユーザーに対してのみ実行されます。 WCFを不正行為させてセキュリティパイプラインを変更し、選択されたSOAPアクションを認証から除外する必要があります(私は実際にそれを行う方法がわかりません)。

どのような認証方法を使用していますか?デフォルトの設定がある場合は、Windowsベースの認証が必要です。その後、有効なADアカウントを使用してログインしたユーザーは、サービスを呼び出す必要があります。

Btw。 WCF offers its ownのときにカスタム検索を行っているのはなぜですか? WCFの検出と同じメカニズムを使用する必要があります。検出のために別個のセキュリティで保護されていないエンドポイントを公開します。

+0

現時点ではWindowsベースの認証サービスしかありませんが、今後はカスタム認証のサービスもあります。私が最初にWindowsベースの自動化に接続しようとすると、これが失敗すると、ユーザーに資格情報を要求し、これらの資格情報でサービスに接続しようとします。私は資格情報をユーザーに求めていた時点で は、私は、同じマシン上で実行されている複数のサービスが存在しますので、ユーザは、サービスをより簡単に識別できるように、サービスに関するいくつかの詳細データを表示したいです。 – christian

+0

WCF認証メカニズムの完全な置き換えが必要になると思います。これは通常、Windows認証の場合は内部、ユーザー名認証の場合は外部の2つのエンドポイントを公開することで簡単に実行されます。あなたがしようとしているのは、主にWCF/Webサービススコープの外です。 –

+0

あなたは正しいと思います。たぶん私は2つのwcfサービスを提供する必要があります。 1つは安全であり、1つは安全ではないという説明を提供する。 – christian