O AspNetCore.Identity não está funcionando com a implementação personalizada de Usuário / Função
Porque eu tendem a favorecerGuid
como meu tipo de chave primária, meuUser
eRole
classes são implementadas da seguinte maneira
public class User : IdentityUser<Guid, UserClaim, UserRole, UserLogin>
{
}
public class Role : IdentityRole<Guid, UserRole, RoleClaim>
{
}
Observe queUserClaim
, UserRole
, UserLogin
& RoleClaim
são todos implementados da mesma maneira
Aqui está o meuDbContext
implementação
public class ApplicationDbContext : IdentityDbContext<User, Role, Guid, UserClaim, UserRole, UserLogin, RoleClaim, UserToken>
{
}
Tudo de bom até agora, exceto o novo contêiner de DI do AspNetCore não parece gostar da minha implementação personalizada por padrão. A seguinte linha de código, do meu arquivo Startup.cs, lança o erro mostrado abaixo
services
.AddIdentity<User, Role>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
GenericArguments [0], 'NewCo.DomainModel.Models.Identity.User', em 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`4 [TUser, TRole, TContext, TKey]' viola a restrição do tipo 'TUser'.
Estou assumindo que isso ocorre porque o Identity gremlin padrão está implementado para usarIdentityUser<string>
, onde eu estou usandoIdentityUser<Guid>
.
O que eu faço em seguida?(Estou sem ideias)
Nota: Estou construindo contra as versões oficiais do .NET .NET e ASP.NET Core da Microsoft a partir de segunda-feira (27 de junho de 2016) e do Visual Studio Update 3 (se isso for de alguma ajuda para alguém)