要实现ASP.NET Core身份验证中的自定义用户数据和集合,可以使用ASP.NET Core Identity框架。以下是一个解决方案,包含了代码示例。
public class CustomUser : IdentityUser
{
public string CustomProperty { get; set; }
}
public class CustomDbContext : IdentityDbContext
{
public CustomDbContext(DbContextOptions options) : base(options)
{
}
}
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddIdentity()
.AddEntityFrameworkStores();
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// ...
}
private readonly UserManager _userManager;
public HomeController(UserManager userManager)
{
_userManager = userManager;
}
public async Task Index()
{
var user = await _userManager.GetUserAsync(User);
var customProperty = user.CustomProperty;
// ...
return View();
}
private readonly UserManager _userManager;
public RegisterController(UserManager userManager)
{
_userManager = userManager;
}
[HttpPost]
public async Task Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new CustomUser { UserName = model.UserName, CustomProperty = model.CustomProperty };
var result = await _userManager.CreateAsync(user, model.Password);
// ...
}
// ...
}
这样,就实现了ASP.NET Core身份验证中的自定义用户数据和集合。您可以根据自己的需求添加其他自定义属性和功能。