【发布时间】:2018-08-14 21:35:29
【问题描述】:
我在 .Net Core 上使用 ASP.Net Core,版本:
> dotnet --info
.NET Command Line Tools (2.1.4)
Product Information:
Version: 2.1.4
Commit SHA-1 hash: 5e8add2190
Runtime Environment:
OS Name: Windows
OS Version: 10.0.16299
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.4\
Microsoft .NET Core Shared Framework Host
Version : 2.0.5
Build : 17373eb129b3b05aa18ece963f8795d65ef8ea54
我正在尝试使用以下方式添加具有声明的新用户:
var r = await _userManager.CreateAsync(new ApplicationUser { UserName = "example", Email = "example@example.com" }, "password");
var u = await userManager.FindByEmailAsync("example@example.com");
if(u == null) {
throw new Exception("User was not found");
}
await _userManager.AddClaimAsync(u, new Claim("FullName", "Example McExample"));
我使用 MS SQL 作为后备存储,由 Entity Framework 使用以下命令创建架构:
dotnet ef database update
在数据库中创建了用户,但声明创建失败并出现错误:
Microsoft.EntityFrameworkCore.DbUpdateException:发生错误 在更新条目时。有关详细信息,请参阅内部异常。 --->
System.Data.SqlClient.SqlException:无法将值 NULL 插入 列“Id”,表“IdentityDemoDatabase.dbo.AspNetUserClaims”;列确实 不允许空值。插入失败。
语句已终止。
单步执行代码时,成功创建用户,然后成功检索用户(返回的用户与刚刚添加的用户匹配)然后AddClaimAsync()方法失败并出现上述错误。
我做错了什么?
【问题讨论】:
标签: asp.net-core .net-core asp.net-identity identity claims-based-identity