在asp.net vnext中,我使用以下代码在Controller中获得用户声明:
var claimsIdentity = User.Identity as ClaimsIdentity;
var c = claimsIdentity.FindFirst(ClaimTypes.Name);
var temp = c.Value.ToString();
但使用相同的,我无法在我的课程中获得它(以前用于存储在DB中)。我收到以下错误(在用户中)为
The name 'User' does not exist in the current context
我试过Thread.CurrentPrincipal但没有成功。有什么帮助吗?
答案 0 :(得分:1)
通常您可以从当前的HttpContext访问User。
您的类可以在其构造函数中声明对Microsoft.AspNet.Hosting.IHttpContextAccessor的依赖,以通过依赖注入传入一个。 然后你可以这样得到它:
ClaimsPrincipal user = httpContextAccessor.HttpContext.User;