如何在dotnet核心中访问Identity中的扩展属性

时间:2017-03-03 01:04:01

标签: c# .net-core

感觉有点卡住:我能够为ApplicationUser添加属性:

// Tells the application not to save changes    
((_Application)wordDoc.Application).Quit(false);

它们出现在我的Register.cshtml视图中,并通过Register方法很好地添加到数据库中。到目前为止,我正在使用dotnet core提供的默认设置,使用Identity。

问题是当他们在那里时如何访问它们。 UserManager有一些默认方法,比如public class ApplicationUser : IdentityUser { [DataType(DataType.Text)] public string CustomUserName { get; set; } [DataType(DataType.Text)] public string Address { get; set; } [DataType(DataType.Text)] public string City { get; set; } [DataType(DataType.PostalCode)] public string ZipCode { get; set; } } ,但是获取其他新添加的属性的过程是什么?

我考虑过使用扩展方法,但随着我深入挖掘原始源代码(尝试模仿GetEmailAsync所做的事情),我承认在the source中有点迷失,而我我不确定在任何情况下我都应该这样做。

我也环顾四周,似乎没有做这部分。有一些如何将属性添加到注册的示例,但没有人说如何在它们进入后检索它们。

那么获得新建物业的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

UserManager<TUser>类是泛型类。如您所见,您需要一个UserManager<ApplicationUser>的实例。

UserManager<TUser>类公开方法Task<TUser> FindByIdAsync(string userId),在您的情况下,该方法将返回ApplicationUser的实例。

所以您需要做的就是致电ApplicationUser myUser = myUserManager.FindByIdAsync("myUserId");