Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net SqlException:无效的列名';规范化名称';。无效的列名';并发amp';。无效的列名';规范化名称';_Asp.net_Asp.net Core_Asp.net Identity - Fatal编程技术网

Asp.net SqlException:无效的列名';规范化名称';。无效的列名';并发amp';。无效的列名';规范化名称';

Asp.net SqlException:无效的列名';规范化名称';。无效的列名';并发amp';。无效的列名';规范化名称';,asp.net,asp.net-core,asp.net-identity,Asp.net,Asp.net Core,Asp.net Identity,为什么在.NET Core Identity上使用PasswordSignInAsync时出现异常Microsoft.AspNetCore.Identity await _signInManager.PasswordSignInAsync(user.UserName, Input.Password, Input.RememberMe, lockoutOnFailure: false); An unhandled exception occurred while processing the r

为什么在.NET Core Identity上使用PasswordSignInAsync时出现异常<代码>Microsoft.AspNetCore.Identity

await _signInManager.PasswordSignInAsync(user.UserName, Input.Password, Input.RememberMe, lockoutOnFailure: false);

An unhandled exception occurred while processing the request.
SqlException: Invalid column name 'NormalizedName'.
Invalid column name 'ConcurrencyStamp'.
Invalid column name 'NormalizedName'.
Microsoft.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__164_0(Task<SqlDataReader> result)

异常实际上来自
AspNetRoles
表,而不是
AspNetUsers
表。如果已将旧的Asp.Net
Identity
迁移到Asp.Net Core,则需要向角色表中添加两个新字段。这里有一个迁移:

公共部分类标识:迁移
{
受保护的覆盖作废(MigrationBuilder MigrationBuilder)
{
migrationBuilder.AddColumn(
名称:“NormalizedName”,
表:“AspNetRoles”,
类型:“nvarchar(256)”,
最大长度:256,
可为空:真);
migrationBuilder.AddColumn(
名称:“ConcurrencyStamp”,
表:“AspNetRoles”,
类型:“nvarchar(最大)”,
可为空:真);
}
受保护的覆盖无效关闭(MigrationBuilder MigrationBuilder)
{
migrationBuilder.DropColumn(
名称:“ConcurrencyStamp”,
表:“AspNetRoles”);
migrationBuilder.DropColumn(
名称:“NormalizedName”,
表:“AspNetRoles”);
}
}

如果您想要完整的
Identity
迁移,包括用户、声明和其他表,您可以参考我对这个问题的回答:

不确定这是如何实现的,但我通过在Startup.cs`services.AddIdentity(options=>{options.SignIn.RequireConfirmedAccount=true;}中进行这些更改来实现).AddEntityFrameworkStores();`到`services.AddDefaultIdentity(options=>options.SignIn.RequireConfirmedAccount=true).AddEntityFrameworkStores()`
select LockoutEnd, TwoFactorEnabled, PhoneNumberConfirmed, PhoneNumber, ConcurrencyStamp, SecurityStamp, 
PasswordHash, EmailConfirmed, NormalizedEmail, Email, NormalizedUserName, UserName, Id, LockoutEnabled, AccessFailedCount
from [dbo].[AspNetUsers]