访问EF Core 2.0.1中ApplicationUser类的自定义属性

时间:2018-04-01 11:30:07

标签: c# asp.net-core entity-framework-core

我正在开发一个.NET Core应用程序,加上EF Core 2.0.1(MySQL通过Pomelo)。

我的ApplicationUser.cs

中有以下内容
public class ApplicationUser : IdentityUser
{
  public string DisplayUsername { get; set; }
}

访问DisplayUsernameBaseController.cs属性的正确方法是什么?在.NET Framework中,我曾经在BaseController.cs

中执行此操作
public class BaseController : Controller
{
  public BaseController()
  {
    var prinicpal = (ClaimsPrincipal)Thread.CurrentPrincipal;
    var displayUsername = prinicpal.Claims.Where(c => c.Type == ClaimTypes.GivenName).Select(c => c.Value).SingleOrDefault();
    ViewBag.DisplayUsername = displayUsername;
  }
}

但这不再适用,因为我们不能再做Thread.CurrentPrinciple了。最新稳定版.NET Core中的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

控制器类中现在有User属性(在ControllerBase类中定义):

 // Gets the System.Security.Claims.ClaimsPrincipal for user 
 // associated with the executing action.
 public ClaimsPrincipal User { get; }