【问题标题】:How to add properties to ApplicationUser in AspNetCore Identity如何在 AspNetCore Identity 中向 ApplicationUser 添加属性
【发布时间】:2018-03-25 22:00:01
【问题描述】:

(这个问题会自己回答,因为我在搜索中没有找到好的答案。如果有现成的答案,请告诉我。)

如何向存储在 AspNetUsers 表中的 ApplicationUser 添加属性?

【问题讨论】:

    标签: asp.net-core asp.net-identity


    【解决方案1】:

    这个问题的答案很简单,以至于错过了:

    首先,将其添加到数据库中,然后将其添加到 ApplicationUser 类中:

    public class ApplicationUser : IdentityUser
    {
        public int TenantId{ get; set; }
    }
    

    这就是添加 TenantId 所需要做的一切。现在,当您需要知道用户的 TenantId 时,只需照常使用 UserManager:

    var user = await _userManager.FindByNameAsync(model.Email);
    

    返回的用户将从数据库中填充 TenantId。

    您可以使用以下方法保存更新的自定义属性:

    await _userManager.UpdateAsync(user);
    

    就是这样。

    【讨论】:

    • 您的答案工作正常,但我看不到使用 ManageController 存储此字段的位置。当用户编辑他或她的个人资料时,内置的身份字段具有用于更新它们的异步方法,但我没有看到一种简单而明显的方法。
    • @CMPalmer,我已经编辑了我的答案。这有帮助吗?
    • 好的,谢谢!我们想通了,但一开始并不清楚。
    • 伙计,你是个 GEM!在我的管理个人资料页面中,在 Post 方法上,有用于更新电子邮件和电话的 SetEmailAsync 和 SetPhoneNumberAsync 方法。如果我使用 UpdateAsync 更新其他属性,会影响电子邮件或电话吗?
    • @HamzaKhanzada,我认为您可以使用 SetEmailAsync 或 UpdateAsync - 他们做同样的事情。测试一下就知道了:)
    猜你喜欢
    • 2019-12-11
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多