我正在编写一个访问有关当前用户信息的服务。
目前我将User属性从控制器通过参数传递到我的逻辑类中并以这种方式使用ClaimsPrincipal。
我知道通常有一些方法可以全局访问当前用户(例如,在以前的版本中使用HttpContext.Current.User),那么MVC 6中的当前用户是什么?
The answer to this question解释说,ClaimsPrincipal.Current不是线程安全的,因此不能替代HttpContext.Current.User
答案 0 :(得分:6)
根据this answer,一种方法是使用DI将HttpContextAccessor注入您的类,然后您可以通过_httpContextAccessor.HttpContext.User
我不会详细介绍实施细节,因为他的答案非常清楚。
由于该问题一般是指HttpContext,而不是特定的当前用户,我觉得我的问题仍值得留下以供参考。