我正在编写一个aspnet core 1应用程序。
使用承载 token 身份验证,我在 Controller 内部拥有具有正确身份的User属性。但是,我似乎找不到像使用ClaimPrincipal.Current
static之前一样获取身份的方法。
在不传递ClaimPrincipal对象的情况下,如何在BL层中获取此数据的当前最佳实践是什么?
最佳答案
进一步调查这个问题,我发现可以使用本机DI容器在需要的地方注入(inject)ClaimsPrincipal
,如下所示:
services.AddTransient<ClaimsPrincipal>(s =>
s.GetService<IHttpContextAccessor>().HttpContext.User);
注入(inject)它感觉有点奇怪,但是比将其存储在
CallContext
中更好。