Asp.net core 无效的列名';NormalizedUserName'';访问失败计数
我正在将现有asp.net核心应用程序转换为身份框架。我已经创建了用户表及其模型类。我想对Identityframework使用相同的用户名和密码进行授权。这是我现有用户表的模型Asp.net core 无效的列名';NormalizedUserName'';访问失败计数,asp.net-core,asp.net-identity,Asp.net Core,Asp.net Identity,我正在将现有asp.net核心应用程序转换为身份框架。我已经创建了用户表及其模型类。我想对Identityframework使用相同的用户名和密码进行授权。这是我现有用户表的模型 User.cs public class GoUserModel : IdentityUser [Key] UserId int {get;set;} UserName string {get;set;} // using for login Password string {get;set} FirstNa
User.cs
public class GoUserModel : IdentityUser
[Key]
UserId int {get;set;}
UserName string {get;set;} // using for login
Password string {get;set}
FirstName string {get;set;}
LastName string {get;set;}
EmailAddress string {get;set}
RoleId int{get;set;}
UserRole UserRole {get;set;}
UserRole.cs
RoleId int {get;set;}
RoleName string {get;set;)
在startup.cs中
services.AddIdentity<GoUserModel, IdentityRole>()
.AddEntityFrameworkStores<GoContext>()
.AddDefaultTokenProviders();
services.Configure<IdentityOptions>(options =>
{
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
});
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
配置(选项=>
{
options.SignIn.RequireConfirmedEmail=false;
options.SignIn.RequireConfirmedPhoneNumber=false;
});
在DbContext.cs中
modelBuilder.Ignore<IdentityUserLogin<int>>();
modelBuilder.Ignore<IdentityUserLogin<string>>();
modelBuilder.Ignore<IdentityUserRole<string>>();
modelBuilder.Ignore<IdentityUserRole<int>>();
modelBuilder.Ignore<IdentityUserClaim<int>>();
modelBuilder.Ignore<IdentityUserToken<int>>();
modelBuilder.Ignore<IdentityUserToken<string>>();
modelBuilder.Ignore();
Ignore();
Ignore();
Ignore();
Ignore();
Ignore();
Ignore();
之后在HomeController中我给出了登录方法
private readonly UserManager<GoUserModel> _userManager;
private readonly SignInManager<GoUserModel> _signInManager;
public HomeController( UserManager<GoUserModel> userManager,
SignInManager<GoUserModel> signInManager)
{
this.connectionSettings = connectionSettings;
_unitOfWork = unitOfWork;
_userManager = userManager;
_signInManager = signInManager;
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
var result1 = await _signInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, lockoutOnFailure: false);
}
private readonly UserManager\u UserManager;
专用只读签名管理器\u签名管理器;
公共家庭控制器(用户管理器用户管理器,
SignInManager(签名管理员)
{
this.connectionSettings=连接设置;
_unitOfWork=unitOfWork;
_userManager=userManager;
_signInManager=signInManager;
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务登录(LoginViewModel模型)
{
if(ModelState.IsValid)
{
var result1=await _signInManager.PasswordSignInAsync(model.Username、model.Password、model.RememberMe、lockoutOnFailure:false);
}
但是,当我运行应用程序时,在passwordsigninasynct行中,在运行后会显示以下错误
SqlException:列名“NormalizedUserName”无效。
列名称“AccessFailedCount”无效。
列名称“ConcurrencyStamp”无效。
无效的列名“EmailConfirm”。
列名“Id”无效。
列名“LockoutEnabled”无效。
列名“LockoutEnd”无效。
列名“NormalizedEmail”无效。
列名“NormalizedUserName”无效。
列名“PasswordHash”无效。
无效的列名“PhoneNumber”。
无效的列名“PhoneNumberConfiged”。
列名“SecurityStamp”无效。
列名“TwoFactoryEnabled”无效
如何修复上述错误。是否需要在用户表中添加上述列?我正在寻找一些帮助,以便在现有表中引入Identityframework
谢谢
PolHi@system-threep,通过使用您的代码,我无法再现该问题。请您分享详细的模型和DbContext好吗?