如果您按照向用户添加自定义字段的所有步骤操作,您将成功完成任务 .
以下是向用户添加自定义字段的所有步骤:
创建ASP.NET Web应用程序
确保选择MVC,并且身份验证是单个用户帐户
转到Models文件夹→打开IdentityModels.cs→ApplicationUser类并添加属性:
public string Code { get; set; }
构建项目
转到工具菜单→Nuget包管理器→单击包管理器控制台
键入 Enable-Migrations 并按Enter键并等待任务完成 . 你会看到一个回复说:
检查上下文是否以现有数据库为目标......
为项目WebApplication1启用了代码优先迁移 .
键入 Add-Migration "Code" 并按Enter键并等待任务完成 . 你会看到一个回复说:
脚手架迁移'代码' . 此迁移的Designer代码
file包含当前Code First模型的快照 . 这个
快照用于计算模型的更改
脚手架下一次迁移 . 如果您对其进行了其他更改
您希望包含在此迁移中的模型,然后您可以
通过再次运行“添加迁移代码”重新构建它 .
键入 Update-Database 并按Enter键并等待任务完成 . 你会看到一个回复说:
指定'-Verbose'标志以查看正在应用的SQL语句
到目标数据库 .
应用显式迁移:[201611132135242_Code] .
应用显式迁移:201611132135242_Code .
运行种子方法 .
在此步骤中,如果刷新SQL Server对象资源管理器并转到数据库并查看表,则在列下的 dbo.AspNetUsers 下,您将看到 Code 字段 . 如果您不知道应该查找哪个数据库甚至是哪个服务器,请打开Web.Config文件并查看连接字符串,如下所示:
providerName="System.Data.SqlClient" />
您可以看到数据源(这是sql server实例)和.mdf这是数据库名称 .
转到Models文件夹→打开AccountViewModels.cs文件→RegisterViewModel类并添加此属性:(在APIv2中使用EF6,可以在Models文件夹中添加以下行→AccountBindingModels文件→RegisterBindingModel类)
public string Code { get; set; }
转到Views文件夹→帐户文件夹→打开Register.cshtml文件,并将此代码添加到其他字段附近,例如密码:
@Html.LabelFor(m => m.Code, new { @class = "col-md-2 control-label" })
@Html.TextBoxFor(m => m.Code, new { @class = "form-control" })
转到Controllers文件夹→打开AccountController.cs文件→在http post Register操作中,将创建用户的行更改为:
var user = new ApplicationUser { UserName = model.Email, Email = model.Email,
Code= model.Code };
运行项目并转到 /Account/Register url并注册新用户 . 注册用户后,如果再次访问数据库并查看dbo.AspNetUsers表的数据,您将看到代码已保存 .
Download
您可以在此处克隆或下载一个工作示例:
Further reading - How to Add a custom Property to IdentityRole?