AspNetCore.Identity funktioniert nicht mit benutzerdefinierter Benutzer- / Rollenimplementierung
Weil ich dazu neige, @ zu bevorzugGuid
als mein Primärschlüsseltyp, meinUser
undRole
Klassen werden wie folgt implementiert
public class User : IdentityUser<Guid, UserClaim, UserRole, UserLogin>
{
}
public class Role : IdentityRole<Guid, UserRole, RoleClaim>
{
}
Beachten Sie, dassUserClaim
, UserRole
, UserLogin
& RoleClaim
sind alle auf die gleiche Weise implementiert
Hier ist meinDbContext
Implementierun
public class ApplicationDbContext : IdentityDbContext<User, Role, Guid, UserClaim, UserRole, UserLogin, RoleClaim, UserToken>
{
}
Bis jetzt ist alles in Ordnung, außer dass der neue DI-Container von AspNetCore meine benutzerdefinierte Implementierung standardmäßig nicht mag. Die folgende Codezeile aus meiner Startup.cs-Datei löst den folgenden Fehler aus:
services
.AddIdentity<User, Role>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
GenericArguments [0], 'NewCo.DomainModel.Models.Identity.User' unter 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`4 [TUser, TRole, TContext, TKey]' verletzt die Einschränkung des Typs 'TUser'.
Ich gehe davon aus, dass dies daran liegt, dass der Standard-Identity-Gremlin für die Verwendung von @ implementiert isIdentityUser<string>
, wo ich @ verwenIdentityUser<Guid>
.
Was tue ich als nächstes? (Ich bin alle outta Ideen)
Hinweis: Ich arbeite mit den offiziellen .NET Core- und ASP.NET Core-Versionen von Microsoft ab Montag (27. Juni 2016) und Visual Studio Update 3 (falls dies für andere hilfreich ist).