我希望这是一件简单容易解决的事情。我已经在一个现有的项目中安装了IdentityServer3,并设法使“内存中”的内容正常工作。现在我正在连接我的UserManager。当我试图进行身份验证时,会得到以下错误:
“在模型generation:\r\n\r\nCormar.Sql.Claim::EntityType 'Claim‘没有定义密钥期间检测到一个或多个验证错误。定义此EntityType.\r\nCormar.Sql.ClaimsIdentity的键::EntityType 'ClaimsIdentity‘没有定义键。定义此EntityType.\r\nCormar.Sql.IdentityReference的键::EntityType 'IdentityReference‘没有定义键。定义此EntityType.\r\nCormar.Sql.Secret的键::EntityType‘EntityType’没有定义键。定义此EntityType.\r\nCormar.Sql.RefreshToken的键::EntityType 'RefreshToken‘没有定义键。定义此EntityType.\r\nCormar.Sql.Token的键::EntityType 'Token‘没有定义键。定义此EntityType.\r\nCormar.Sql.Scope的键::EntityType 'Scope‘没有定义键。定义此EntityType.\r\nCormar.Sql.ScopeClaim的键::EntityType 'ScopeClaim‘没有定义键。定义此EntityType的键。\r\n Claims: EntityType: EntitySet 'Claims‘基于没有定义键的类型’Claims‘。\r\n ClaimsIdentities: EntityType: EntitySet 'ClaimsIdentities’基于没有定义键的类型'ClaimsIdentity‘。\r\n IdentityReferences: EntityType: EntitySet 'IdentityReferences’是基于没有定义键的类型'IdentityReference‘。\r\n Secrets: EntitySet : EntitySet 'Secrets’是基于没有定义键的“秘密”类型的。\r\RefreshTokens: EntityType: EntitySet 'RefreshTokens‘是基于类型'RefreshToken’的。“它没有定义键。\r\n令牌: EntityType: EntitySet‘令牌’是基于没有定义键的类型‘令牌’。\r\n Scopes: EntityType: EntitySet 'Scopes‘是基于没有定义键的类型'Scope’。\r\n ScopeClaims: EntityType: EntitySet 'ScopeClaims‘是基于没有定义键的'ScopeClaim’类型的。\r\n”
我想这可能是因为我缺少了一个包,所以我使用NuGet来安装,但这没有起作用。有人知道如何解决这个问题吗?
发布于 2017-09-07 14:39:08
这已经足够直截了当了,你必须有IdentityServer3.EntityFramework.我查看了源代码并看到了迁移类,所以我只是简单地将实体添加到我的DbContext中,如下所示:
public DbSet<Client> Clients { get; set; }
public DbSet<ClientClaim> ClientClaims { get; set; }
public DbSet<ClientSecret> ClientSecrets { get; set; }
public DbSet<Consent> Consents { get; set; }
public DbSet<Scope> Scopes { get; set; }
public DbSet<ScopeClaim> ScopeClaims { get; set; }然后我做了一个add-migration和update-database。这为我创造了桌子,一切都很有趣。
https://stackoverflow.com/questions/46097129
复制相似问题