因爲我傾向於Guid
作爲我的主鍵類型,我User
和Role
類實現如下AspNetCore.Identity不使用自定義用戶/角色的實施工作
public class User : IdentityUser<Guid, UserClaim, UserRole, UserLogin>
{
}
public class Role : IdentityRole<Guid, UserRole, RoleClaim>
{
}
注意UserClaim
,UserRole
,UserLogin
& RoleClaim
以同樣的方式被全部實行
這是我DbContext
實施
public class ApplicationDbContext : IdentityDbContext<User, Role, Guid, UserClaim, UserRole, UserLogin, RoleClaim, UserToken>
{
}
目前爲止都很好,除了AspNetCore的新DI容器似乎並不喜歡我的默認自定義實現。下面的行的代碼,來自我的Startup.cs文件會引發下面
services
.AddIdentity<User, Role>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
GenericArguments [0], 'NewCo.DomainModel.Models.Identity.User',上 「Microsoft.AspNetCore所示的誤差。 Identity.EntityFrameworkCore.UserStore`4 [TUser,TRole,TContext,TKey]' 違反類型'TUser'的約束。
我假設這是因爲默認身份gremlin使用IdentityUser<string>
,我使用IdentityUser<Guid>
。
接下來我該做什麼? (我完全失控的想法)
注:我建立針對微軟的官方.NET的核心和ASP.NET核心發佈,截至週一(2016年6月27日)和Visual Studio更新3的(如果是這樣的任何幫助任何人)
是否有你正在實現你自己的UserClaim,UserRole,UserLogin,RoleClaim和UserToken的版本的原因?我在我自己的應用中使用'Guid'作爲關鍵字,並且與DI沒有任何問題。我實現了我的用戶和角色模型,例如'AppUser:IdentityUser','AppRole:IdentityRole '。我還沒有發現其他身份模型的自定義實現的需求。 –
Brad
@布拉德,我想保持一致 - 儘管如果你的方式有效,那可能是(快樂)妥協。 – series0ne
它在這裏報告爲一個錯誤:https://github.com/aspnet/Identity/issues/829#issuecomment-238804731 – VahidN