我正在编写一个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中更好。

10-06 04:47