Windows Identity Foundation を使用するように、いくつかのアプリケーションを構成しています。パッシブ リダイレクトを使用して、Security Token Service からセキュリティ トークンを取得します。これは、WIF の使用を開始する前に存在していたログオン Web サイトに WIF コードを挿入し、アプリケーション内で [Add STS Reference] を使用することで実現しました。
ただし、ログオン Web サイトを使用しないアプリケーションが 1 つあります。私がやりたいことは、ユーザーを外部 STS にリダイレクトせずに、アプリケーション自体の中でセキュリティ トークンを生成することだと思います。
外部 STS から受け取ったセキュリティ トークンにクレームを追加するために使用できる ClaimsAuthenticationManager クラスを使用して、これを達成しようとしましたが失敗しました。ただし、ClaimsAuthenticationManager はこのコンテキストでは機能しません。ClaimsAuthenticationManager をセッションごとに 1 回だけ呼び出すのではなく (期待される望ましい結果)、ページの読み込みごとに呼び出され、前のページの読み込みでユーザーに割り当てたクレームの兆候はありません。
ユーザーにデータベースからのクレームを与える外部 STS の作成を検討していますが、これは危険であると考えています。1 つの Web サイトだけのために完全に別個の STS を作成しなければならない理由はないようです。アプリケーション内でセキュリティ トークンを生成したいだけです。