我正在编写一个aspnet核心1应用程序.
使用承载令牌认证我在控制器内具有正确标识的User属性.但是我似乎找不到像使用ClaimPrincipal.Current静态之前那样抓住身份的方法.
目前最好的做法是将这些数据放在BL层中而不传递ClaimPrincipal对象?
使用承载令牌认证我在控制器内具有正确标识的User属性.但是我似乎找不到像使用ClaimPrincipal.Current静态之前那样抓住身份的方法.
目前最好的做法是将这些数据放在BL层中而不传递ClaimPrincipal对象?
解决方法
进一步研究这个问题我发现可以使用本机DI容器在需要的地方注入ClaimsPrincipal:
services.AddTransient<ClaimsPrincipal>(s => s.GetService<IHttpContextAccessor>().HttpContext.User);
这种注入感觉很奇怪,但是它比将它存储在CallContext中更好.