在asp.vnext beta4类中获取用户声明

时间:2015-07-12 15:05:15

标签: c# asp.net claims-based-identity asp.net-core-mvc

在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但没有成功。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

通常您可以从当前的HttpContext访问User。

您的类可以在其构造函数中声明对Microsoft.AspNet.Hosting.IHttpContextAccessor的依赖,以通过依赖注入传入一个。 然后你可以这样得到它:

ClaimsPrincipal user = httpContextAccessor.HttpContext.User;