内部からClaimsPrincipalまたはClaimsIdentityを取得、私はそうのような依存関係としてClaimsIdentity
持つクラスがあります。想定しているASP.NETコア依存性注入
公共ClaimsIdentityDecorator(ClaimsIdentityアイデンティティ)
を現在のユーザーの主張になるようにします。私は、ユーザーの主張を検査する必要があり、ClaimsIdentityまたはClaimsPrincipalまたはいくつかの他のアイデンティティオブジェクトは自動的に私のために注入されることを思わ
services.AddScoped(x=>
{
var context = x.GetService<IHttpContextAccessor>();
return context.HttpContext.User.Identity as ClaimsIdentity;
});
:私はそうのようなIHttpContextAccessor
経由のようにそれを取得します。それをHttpContextから取得し、それを自分で追加するのは問題ありません。しかし、すでにそこにある主張を持つ別のオブジェクトやインタフェースがある場合は、その依存関係を取るようにクラスを設計したいと思います。
また、スコープレベルで注入する必要があります。
「IHttpContextAccessor」を依存クラスに挿入し、必要に応じてコンテキストからユーザを抽出するだけではいかがですか。 – Nkosi
@ Nkosi私は現在のユーザーと彼の主張がほしいからです。 httpコンテキスト全体ではありません。 –