MVC 身份 - AspNetUser 的用户概述

Posted

技术标签:

【中文标题】MVC 身份 - AspNetUser 的用户概述【英文标题】:MVC Identity - User Overview with AspNetUser 【发布时间】:2020-10-21 20:31:54 【问题描述】:

我是 MVC Identity 的新手,遇到了问题。

我想为管理员实现一个用户概览,他可以在其中编辑/删除它们。我使用 MVC 身份进行注册和登录,因此注册用户保存在数据库的 aspnet 表中。但我有一个自己的表格供用户使用,还有其他属性(如姓名、地址等)。

所以我的问题是:我可以将注册用户保存在我自己的用户表中吗?或者我可以将用户的属性/列添加到 aspnetuser 表中并在概览中显示它们?

【问题讨论】:

【参考方案1】:
    您可以简单地通过在Project > Models > IdentityModels.cs > ApplicationUser 中添加属性来扩展内置的 ApplicationUser 类,而不是为其他属性添加新表。
public class ApplicationUser : IdentityUser

   // these are additional properties
   public string FirstName get;set;
   public string MiddleName get;set;
   public string LastName get;set;

    然后在上述步骤之后,通过转到 Nuget 包管理器控制台并输入 add-migration "migration name here" 添加迁移以更新用户表。 添加迁移后,在同一个 Nuget 包管理器控制台上运行 Update-Database,这将运行您的迁移。 添加将返回用户的控制器操作。
public ActionResult ViewUsers()
   return View(db.Users.ToList());

    使用以下代码添加一个名为 ViewUsers.cshtml 的视图。
@model List<ApplicationUser>

<table>
   <thead>
      <tr>
         <th>Email</th>
         <th>Name</th>
      </tr>
   </thead>

   <tbody>
      @foreach(var item in model)
         <tr>
            <td>@item.Email</td>
            <td>@item.LastName , @item.FirstName</td>
         </tr>
      
   </tbody>
</table>

【讨论】:

感谢您的回答。当我尝试添加迁移时,我收到以下错误“项目无法构建”。有什么想法吗? @JoeJackson 尝试先重建项目,右键单击解决方案 > 重建,然后它会显示错误。让我知道错误是什么 我收到“找不到类型或命名空间名称”错误。我的目标框架是 4.7.2 哦,在视图上,试试这条线; @model List&lt;ProjectName.Models.ApplicationUser&gt; 将 ProjectName 替换为您的项目名称

以上是关于MVC 身份 - AspNetUser 的用户概述的主要内容,如果未能解决你的问题,请参考以下文章

更改 id 列的种子身份用户表?

MVC 5 访问声明身份用户数据

为 ASP.NET MVC 身份创建身份用户页面

如何在 MVC 5 中使用用户身份中的角色

自定义身份用户和扩展配置文件 MVC

在现有 AspNetUser 表中手动创建列是个好主意吗?