0

AllowedScopes に「all_claims」設定するハイブリッド フロー クライアントを 1 つだけ使用して IdentityServer をセットアップしました。別のコンピューターには、IdSvr に接続してユーザーをログインさせる MVC アプリがあります。また/admin、IdMgr のバインドも設定します。メイン アプリと IdMgr には問題なくログインできます。また、ユーザーのログイン後のメイン アプリでは、期待どおりにすべてのクレームを取得しますが、IdMgr では取得しません。

クレームに基づいて IdMgr にカスタム ロジックを追加しようとしています。しかし、Thread.CurrentPrincipalIdMgr コントローラーに入ると、空です! 私が取得するのは、ロール クレームのみを持つClaimsPrincipalオブジェクトだけです。また、次のプロパティを持つClaimsIdentityオブジェクトが 1 つあります。

AuthenticationType: "Bearer"
IsAuthenticated: true
NameClaimType: "name"
RoleClaimType: "role"

それ以外はすべて null です。ユーザーの名前や ID すらありません。これはなぜですか? IdentityManager ですべてのクレームを取得するにはどうすればよいですか?

これを再現するSystem.Threading.Thread.CurrentPrincipalには、 のGetUsersAsyncメソッドを調べるだけUsersControllerです。

GitHubのこの問題へのリンク

4

2 に答える 2

-1

IdMgr のカスタム クレームが必要な場合は、パイプラインでクレーム変換を行うことをお勧めします。

于 2016-03-25T21:35:09.003 に答える