2011-07-18 15 views
0

2人のサービスコールで現在のユーザーのWindows IDを伝達する必要があります。WCFで委任を使用せずにWindows Identityをプロポジティングするにはどうすればよいですか?

サービスA(統合認証で実行される)は、サービスB(統合認証の下でも実行されます)を呼び出します。サービスBのコードでサービスAを呼び出すために使用されたユーザーIDを特定する必要があります。

これは、委任を使用して、サービスでユーザーAのコードを偽装し、次に偽装されたコードからサービスBを呼び出すことによって可能であることがわかります。

ただし、ユーザーを偽装せずにIDをフローしたいだけです。これは偽装なしで可能ですか?

+0

のヘッダーまたはフィールドのいずれかが、あなただけのユーザー名が第二に送信されるようにしたいんようServiceSecurityontext.Current.PrimaryIdentity.Name

を使用して認証されたユーザーがこれを追加取得サービスを使用するか、2番目のサービスコールをユーザーの身元に基づいて実行しますか? –

+0

私は、ユーザー名を2番目のサービスに送信するか、2番目のサービスで元のユーザーを識別する方法を使用します。 –

答えて

1

下流のサービス要求

+0

問題は、すでに多くのサービスが書かれていることです。私たちは代表団を使うことができますが、それを望んでいません。もちろん、これらの資格情報をフィールドに伝播するためのコードを記述することもあります。偽装なしで、ダウンストリームサービスのフィールドまたはヘッダーを使用せずにIDのみを伝播することは可能ですか? (私はそれが馬鹿だとは思いますが、ちょうど尋ねる) –

+0

明示的にそれを渡すこともなく、委任を自動的に送信する方法もありません –

+0

助けてくれてありがとうRichard。 –

0

私は、あなたが "アイデンティティ"と呼ばれる偽装レベルを探していると思います。 WCFのさまざまな偽装レベルについては、this articleを参照してください。

+0

「アイデンティティ」を使用して、最初のサービスの資格情報を識別できることを知っています。ホップはどうですか?偽装せずにこれらの資格情報を2番目の呼び出しに伝播するにはどうすればよいですか? –

関連する問題