AspNetCore.Identity не работает с пользовательской реализацией User / Role
Потому что я склоняюсь кGuid
как мой основной тип ключа, мойUser
а такжеRole
классы реализованы следующим образом
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>
{
}
Пока все хорошо, за исключением того, что новый DI-контейнер AspNetCore не похож на мою пользовательскую реализацию по умолчанию. Следующая строка кода из моего файла 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».
Я предполагаю, что это потому, что по умолчанию Identity Gremlin реализован для использованияIdentityUser<string>
где я используюIdentityUser<Guid>
.
Что мне делать дальше?(Я все из идеи)
Примечание: я работаю с официальными выпусками Microsoft .NET Core и ASP.NET Core по состоянию на понедельник (27 июня 2016 г.) и Visual Studio Update 3 (если это кому-нибудь поможет)