我有一个具有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不会反映该更改。

08-26 00:04