0

私はこれらのコンポーネントを持っています:

  1. ASP.NETアプリケーション(Webサイト)
  2. WIFセキュリティ
  3. WCFサービス(2で保護)

WCFサービス(TestService)に1つのセキュリティで保護されたメソッドがあるとします。

  Boolean IsItWorking();

これで、Webサイトのページは次の手順を実行します。

  1. 制限されたページに移動します
  2. ログイン資格情報を提供する
  3. WIF要求/応答を処理する=>作成されたCookie
  4. ページはシングルトンにClientCredentialsを提供します!WCFクライアントリファレンス
  5. ページはTestService.IsItWorking()を呼び出します

シングルトンクライアントインスタンスが機能していないことに気付くまで、問題なく機能しました。クライアントにクレデンシャルを提供する方法は?クレデンシャルはどこに保管しますか?このシナリオを正しく解決するにはどうすればよいですか?

4

1 に答える 1

1

WCFサービスに対するユーザー名/パスワードベースの認証は、WCFWSHttpBindingを使用して簡単に実行できます。その方法については、サンプルコードがたくさんあります。

http://codebetter.com/petervanooijen/2010/03/22/a-simple-wcf-service-with-username-password-authentication-the-things-they-don-t-tell-you/

ただし、これに伴ういくつかの注意事項があります。シナリオにIDプロバイダーを導入すると、WIFはより多くのオプションを提供します(ローカルプロバイダーとサードパーティIDプロバイダーのいずれか)。次に、ユーザーがログインすると、WIFはASP.NETアプリケーションにセキュリティトークンとASP.NETCookieを提供します。

このセキュリティトークンはクレームの媒体として機能し、ASP.NETアプリケーションはこのトークンを再利用してWCFバックエンドに対して認証することもできます。WIFは、ASP.NETとWCFの両方の端でこれを構成するのに役立ちます。WIF構成のSaveBootstrapTokens=trueプロパティを確認し、トークンを使用してWCFサービスと通信するためのChannelFactory.CreateChannelWithIssuedToken()を確認します。WIF SDKには、それがどのように機能するかを示すWSTrustChannelサンプルがあり、さらに多くのサンプルがオンラインにあります。

于 2012-12-05T23:43:56.003 に答える