我有一个具有ClaimsIdentity
作为依赖的类,如下所示:
public ClaimsIdentityDecorator(ClaimsIdentity身份)
那应该是当前用户的Claimsidentity。我像通过IHttpContextAccessor
这样检索它:
services.AddScoped( x=>
{
var context = x.GetService<IHttpContextAccessor>();
return context.HttpContext.User.Identity as ClaimsIdentity;
});
我需要检查用户的声明,并且似乎会自动为我注入ClaimsIdentity或ClaimsPrincipal或其他某个身份对象。从HttpContext检索它并自己添加它就可以了。但是,如果已经有其他对它具有声明的对象或接口,我想设计我的类以采用该依赖关系。
另外,我只想确保将其注入到Scope级别。
最佳答案
没有提供我知道的提供ClaimsIdentity
的内置方法,但您可能需要AddTransient
。如果用户注销,但是实例是在请求开始时创建的,则AddScoped
不会反映该更改。