📜  asp net identity 为用户添加唯一字段 - C# (1)

📅  最后修改于: 2023-12-03 14:59:23.915000             🧑  作者: Mango

以 ASP.NET Identity 为用户添加唯一字段 - C#

ASP.NET Identity提供了一个简便的方法来管理用户和授权。它使用实体框架(Entity Framework)管理用户数据,并在内部使用加密哈希密码。尽管Identity提供了许多有用的功能,但在特定情况下,您可能需要向Identity用户添加一个唯一字段来存储其他信息。

本文将向您展示如何在ASP.NET Identity中为用户添加唯一字段。我们将使用C#编程语言来演示。

添加字段

首先,我们需要将Identity用户实体扩展为添加我们需要的唯一字段。比如,如果我们需要为用户添加年龄,则可以创建一个名为“Age”的新属性。

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

我们可以通过以下步骤来更新Identity用户实体:

  1. 在Solution Explorer中,展开Identity模块的源代码文件夹。找到ApplicationUser.cs文件,并打开它。
  2. 在类定义中添加新属性。

注意:这将更改Identity源代码,因此您应该在进行更改之前备份ApplicationUser.cs文件。

运行以下命令,使EF更好的合并:

dotnet ef migrations add AddedAgeToUser
dotnet ef database update
更新注册流程

在我们的Identity应用程序中,我们需要更新用户注册的流程,以便在用户创建帐户时保存这些信息。我们可以通过以下步骤来完成此操作:

  1. 找到包含RegisterViewModel类定义的文件,并打开它。RegisterViewModel类存储注册表单数据。
  2. 添加新属性。
public class RegisterViewModel
{
    [Required]
    [EmailAddress]
    [Display(Name = "Email")]
    public string Email { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }

    // Add new property
    [Required]
    [Display(Name = "Age")]
    public int Age { get; set; }
}

在注册视图(View)中,我们需要添加元素以存储新属性。我们可以通过以下步骤来完成此操作:

  1. 找到包含注册表单的视图,并打开它。视图文件名通常为Register.cshtml
  2. 添加以下元素:
<div class="form-group">
    <label asp-for="Age" class="col-md-2 control-label"></label>
    <div class="col-md-10">
        <input asp-for="Age" class="form-control" />
        <span asp-validation-for="Age" class="text-danger"></span>
    </div>
</div>

这将向注册表单添加一个新字段,以存储年龄信息。现在,在创建用户帐户时,我们将能够存储年龄信息。

更改用户管理

在我们的Identity应用程序中,我们需要更新用户管理,以便用户信息中包含我们添加的新属性。我们可以通过以下步骤来完成此操作:

  1. 找到包含ApplicationUser类定义的文件,并打开它。ApplicationUser类是Identity用户实体。
  2. 添加新属性。
public class ApplicationUser : IdentityUser
{
    public int Age { get; set; }
}

注意:这将更改Identity源代码,因此您应该在进行更改之前备份ApplicationUser.cs文件。

更改用户视图

在用户管理功能中,我们需要更新视图以显示和显示新的唯一字段。我们可以通过以下步骤来完成此操作:

  1. 找到包含用户详细信息的视图,并打开它。此视图通常命名为Details.cshtmlEdit.cshtmlDelete.cshtml
  2. 在适当的位置,添加以下HTML代码。此代码将显示用户的年龄信息。
<dt>
    @Html.DisplayNameFor(model => model.Age)
</dt>
<dd>
    @Html.DisplayFor(model => model.Age)
</dd>
总结

在本文中,我们已经演示了如何在ASP.NET Identity中为用户添加唯一字段。我们首先扩展了Identity用户实体,然后更新了注册表单,使其包含新的唯一字段。接下来,我们更新了用户管理功能,以便在用户信息中包含新字段。最后,我们更新用户详细信息视图,以便显示和显示新的唯一字段。

我们希望本文能够为您优化基于ASP.NET Identity的应用程序开发过程,并帮助您快速扩展Identity功能。