我正在开发一个.NET Core应用程序,加上EF Core 2.0.1(MySQL通过Pomelo)。
我的ApplicationUser.cs
public class ApplicationUser : IdentityUser
{
public string DisplayUsername { get; set; }
}
访问DisplayUsername
中BaseController.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中的正确方法是什么?
答案 0 :(得分:1)
控制器类中现在有User
属性(在ControllerBase
类中定义):
// Gets the System.Security.Claims.ClaimsPrincipal for user
// associated with the executing action.
public ClaimsPrincipal User { get; }