Dependency injection 从ASP.NET核心依赖项注入内部获取ClaimsPrincipal或ClaimsEntity

Dependency injection 从ASP.NET核心依赖项注入内部获取ClaimsPrincipal或ClaimsEntity,dependency-injection,asp.net-core,claims-based-identity,Dependency Injection,Asp.net Core,Claims Based Identity,我有一个类,它具有ClaimsIdentity作为依赖项,如下所示: 公共索赔人(索赔人身份) 这应该是当前用户的权利要求。我通过IHttpContextAccessor像这样检索它: services.AddScoped(x=> { var context=x.GetService(); 返回context.HttpContext.User.Identity作为ClaimsIdentity; }); 我需要检查一个用户声明,似乎ClaimsEntity或ClaimsPrincipal或其他一

我有一个类,它具有
ClaimsIdentity
作为依赖项,如下所示:

公共索赔人(索赔人身份)

这应该是当前用户的权利要求。我通过
IHttpContextAccessor
像这样检索它:

services.AddScoped(x=>
{
var context=x.GetService();
返回context.HttpContext.User.Identity作为ClaimsIdentity;
});
我需要检查一个用户声明,似乎ClaimsEntity或ClaimsPrincipal或其他一些身份对象会自动为我注入。从HttpContext中检索它并自己添加就可以了。但是,如果有另一个对象或接口已经存在声明,我希望设计我的类来接受该依赖关系


另外,我只想确保这应该在作用域级别注入。

没有内置的方法来提供我所知道的
索赔实体,但您可能需要
AddTransient
。如果用户注销,但实例是在请求开始时创建的,
AddScoped
不会反映该更改。

为什么不将
IHttpContextAccessor
注入依赖类,并根据需要从上下文中提取该用户。@Nkosi因为我只需要当前用户及其声明。不是整个http上下文。