0

AspNetIdentity_2faサンプルを見て、ユーザーの動的クレームを含めるように変更しようとしています。calculated_valueユーザーが認証されると動的に作成され、ユーザーのクレーム リストに含まれ、認証トークンと共に渡されるクレームと名付けましょう。この値を取得するために別の Web API を作成できることはわかっていますが、それは小さなデータであり、ユーザーが認証されるとすぐに必要になるため、クレームとして渡すだけでよいと考えました。サンプルでは、​​クレームは常に静的データまたはハードコーディングされたデータから来ていることがわかります。動的/遅延バインディング クレームを作成するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

少し前に、Identity Server v3 と Active Directory の統合を試みました。AD を介してユーザーを認証し、AD から「クレーム」を読み取りたいと考えていました。そのために、 のカスタム実装を提供しましたIUserService。これは多かれ少なかれ、これらのインターフェイスのインメモリ実装に基づいていましたInMemoryUserService

カスタム実装の準備ができたら、登録する必要があります。ただし、AspNetIdentity_2faIUserServiceサンプル プロジェクトでは、 ieのカスタム実装が既に登録されていますUserService(このクラスのプロジェクトを検索するだけです)。AspNetIdentityUserServicewhich implementsから派生しますIUserService

したがって、完全に新しい実装を提供する代わりに、それを変更してみてください。AuthenticateLocalAsyncAuthenticateExternalAsyncおよびGetProfileDataAsyncメソッド(参照InMemoryUserService用に参照)を見て、それらをオーバーライドする必要があると思います。最初の 2 つはユーザーを認証するために使用され、最後の 1 つはユーザーの要求されたクレームを読み取るために使用されます。

于 2015-04-15T14:03:26.037 に答える