2

基本的に、次のシナリオと情報があります。

  • HTTPS を使用しています。
  • ユーザーが最初にログインするときに、ユーザー/パスによってユーザーを認証したいと考えています。
  • それらが認証された後、(ログインサービスではなく)他のサービスへの今後の呼び出しで、ユーザー名とある種のセッションを使用する必要があります(セッションの途中でパスワードが変更された場合)。
  • セッションがタイムアウトし、ユーザーがサービスを呼び出そうとしたときにセッションがない場合にエラーが発生するようにセッションを制御できるようにしたい (ログインしていないため)。この方法でセッションを行うための WCF 組み込みの方法があるかどうか、またはデータベースでカスタマイズされた何かを行う必要があるかどうかはわかりません。
  • WSHttpBinding (BasicHttpBinding ではない) を使用したいと思います。これについては 90% 確実です。

私はこれを行う方法を理解できないようです。client.ClientCredentials.UserName.UserName = username多くの場合、クライアント コードの実行に関する情報を見つけることができますclient.ClientCredentials.UserName.Password = password。しかし、私のサーバーは何に対してチェックしているのでしょうか? その情報を取得して、ユーザー/パスのデータベースに対して検証しようとしています。私は Windows 認証などを使用するつもりはありません (誰がコンピューターにログインしているかは気にせず、誰がアプリにログインしているかは気にしないためです)。

4

1 に答える 1

2

Secure Token Service (STS) を使用して認証し、他のサービスに渡すことができるユーザーを識別するセキュリティ トークン (おそらく SAML) を取得し、ID 情報を使用して識別および承認することができます。 STS がユーザーの ID を前もって検証したことを信頼します。

これは議論すべき大きなテーマであるため、WCF STSを検索してさらに調査することをお勧めしますが、それは間違いなく私がお勧めする方向です。独自の STS 実装を構築する場合は、 Windows Identity Foundation (WIF)コンポーネントの使用を検討して、開発作業を容易にすることもお勧めします。

この回答の時点での最新バージョンであるWIF v1.0 のダウンロード リンクは次のとおりです。

于 2011-05-26T00:30:00.620 に答える