如何在应用程序用户管理器中查询其 API 未公开的自定义数据



我在ApplicationUser类中添加了以下新属性。

[ForeignKey("UserTypeId")]
public UserType Type { get; set; }
public int UserTypeId { get; set; }

如何,我想向ApplicationUserManager添加一个新方法来获取用户的类型,如下所示:

public UserType GetUserType()
{
  return null;
}

我假设我不能使用ApplicationUserManager类的Store (IUserStore<...>)属性来查询这个新字段,因为我假设没有方法可以让我从IUserStore中为用户获得我自己的自定义字段。

那么,是从ApplicationUserManager类查询自定义数据然后创建新的ApplicationDbContext并自己获取数据的唯一方法吗?

只要你的ApplicationUserManager类在UserManager泛型中定义你的ApplicationUser,你应该能够调用基本方法。

public class ApplicationUserManager : UserManager<ApplicationUser> 

由于UserManager返回User的泛型,您可以简单地调用方法,如…

  • FindByIdAsync (TKey)
  • FindByNameAsync (String)

这些方法将返回一个ApplicationUser,包括你的自定义属性。

或者,如果你只关心类型属性而不是整个用户对象,那么你可以创建自己的UserStore实现,并在初始化ApplicationUserManager时传递它,这样你就可以访问DbContext了!

最新更新