Asp.Net 标识 - 自定义数据库访问用户管理器



是否可以扩展UserStore/UserManager以访问覆盖方法中的自定义表(无需创建另一个dbcontext(?

我正在开发一个与Identity集成的遗留数据库。最近,我们向数据库中添加了一个新表 Client,该表与 Users 表具有一对一的关系。要做的是重写 UserManager 类中的 FindAsync 方法以调用基方法,获取用户,然后根据存储在表中的用户客户端 Id,获取客户端名称并将其插入到用户模型中。

以下是我尝试的;但是,对我来说,我认为这是错误的方法,并希望就如何正确应用我正在尝试做的事情提供一些建议。

public override async Task<ApplicationUser> FindAsync(string userName, string password)
{
    ApplicationUser user = await base.FindAsync(userName, password);
    if (user != null && user.ClientID != null)
    {
        using (var ctx = new ApplicationDbContext(HostPage.ConnectionString))
        {
            user.Client = ctx.Clients.Where(p => p.ClientID == user.ClientID).FirstOrDefault();
        }
    }
    return user;
}

您可以在base.FindAsync()中修改 SQL 以执行对表的连接,从而执行单个查询。

相关内容

  • 没有找到相关文章

最新更新