Best Practices für die Integration von ASP.NET Identity - gibt es sie?

Ich verwende ASP.NET Identity mit einer neuen Website und es scheint nicht viele (irgendwelche?) Beispiele dafür zu geben, wie dies entkoppelt erfolgen kann. Ich möchte nicht mein Domain-ModellDomainUser Klasse, von der erben mussMicrosoft.AspNet.Identity.EntityFramework.UserAlso habe ich eine Klasse erstellt, die so aussieht:

public class IdentityUser : User
{
    public virtual DomainUser DomainUser { get; private set; }
}

Ich bin umgezogenDbSets erforderlich von ASP.NET-Identität in die gleiche abgeleitetDbContext Klasse als meine Domain-Modellewie in dieser Antwort dargestellt. Ich habe die verlinktIdentityUser unidirektional zumDomainUser über Fluent API wie folgt:

modelBuilder.Entity<IdentityUser>().HasRequired(iu => iu.DomainUser).WithRequiredPrincipal();

Dies ermöglicht es mir, die Belange der Autorisierung und Authentifizierung von den im Dokument definierten Verhaltensweisen zu trennenDomainUser Klasse. Das ist besser, als sie zu einer Klasse zusammenzufassen, aber es fühlt sich immer noch hässlich an. In meinem Domänenprojekt befinden sich weiterhin Verweise auf die erforderlichen ASP.NET-Identitätsassemblys. Ich könnte noch ein weiteres Projekt erstellen, das nur meine IdentityUser-Klasse und einen Verweis auf meine Domain-Assembly enthält, um die Navigationseigenschaft zu berücksichtigen, das sich jedoch verworren anfühlt.

Meiner Meinung nach sollte es eine bessere, sauberere und modularere Möglichkeit geben, die Identität mit der Domäne zu verknüpfen, ohne dass dies zu einer engen Kopplung führt.

Hat jemand eine bessere Möglichkeit gefunden, damit umzugehen? Ich hoffe, die Aufmerksamkeit der am ASP.NET Identity-Projekt Beteiligten zu gewinnen (Hao Kung et al.), um hier die Richtung vorzugeben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage