📅  最后修改于: 2023-12-03 14:59:23.915000             🧑  作者: Mango
ASP.NET Identity提供了一个简便的方法来管理用户和授权。它使用实体框架(Entity Framework)管理用户数据,并在内部使用加密哈希密码。尽管Identity提供了许多有用的功能,但在特定情况下,您可能需要向Identity用户添加一个唯一字段来存储其他信息。
本文将向您展示如何在ASP.NET Identity中为用户添加唯一字段。我们将使用C#编程语言来演示。
首先,我们需要将Identity用户实体扩展为添加我们需要的唯一字段。比如,如果我们需要为用户添加年龄,则可以创建一个名为“Age”的新属性。
public class ApplicationUser : IdentityUser
{
public int Age { get; set; }
}
我们可以通过以下步骤来更新Identity用户实体:
ApplicationUser.cs
文件,并打开它。注意:这将更改Identity源代码,因此您应该在进行更改之前备份ApplicationUser.cs
文件。
运行以下命令,使EF更好的合并:
dotnet ef migrations add AddedAgeToUser
dotnet ef database update
在我们的Identity应用程序中,我们需要更新用户注册的流程,以便在用户创建帐户时保存这些信息。我们可以通过以下步骤来完成此操作:
RegisterViewModel
类定义的文件,并打开它。RegisterViewModel
类存储注册表单数据。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)中,我们需要添加元素以存储新属性。我们可以通过以下步骤来完成此操作:
Register.cshtml
。<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应用程序中,我们需要更新用户管理,以便用户信息中包含我们添加的新属性。我们可以通过以下步骤来完成此操作:
ApplicationUser
类定义的文件,并打开它。ApplicationUser
类是Identity用户实体。public class ApplicationUser : IdentityUser
{
public int Age { get; set; }
}
注意:这将更改Identity源代码,因此您应该在进行更改之前备份ApplicationUser.cs
文件。
在用户管理功能中,我们需要更新视图以显示和显示新的唯一字段。我们可以通过以下步骤来完成此操作:
Details.cshtml
、Edit.cshtml
或Delete.cshtml
。<dt>
@Html.DisplayNameFor(model => model.Age)
</dt>
<dd>
@Html.DisplayFor(model => model.Age)
</dd>
在本文中,我们已经演示了如何在ASP.NET Identity中为用户添加唯一字段。我们首先扩展了Identity用户实体,然后更新了注册表单,使其包含新的唯一字段。接下来,我们更新了用户管理功能,以便在用户信息中包含新字段。最后,我们更新用户详细信息视图,以便显示和显示新的唯一字段。
我们希望本文能够为您优化基于ASP.NET Identity的应用程序开发过程,并帮助您快速扩展Identity功能。