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).

Antworten auf die Frage(8)

Ihre Antwort auf die Frage