Najlepsze praktyki dotyczące integracji tożsamości ASP.NET - czy istnieją?

Używam Tożsamości ASP.NET z nową stroną internetową i wydaje się, że nie ma wielu (żadnych?) Przykładów, jak to zrobić w sposób oddzielony. Nie chcę mojego modelu domenyDomainUser klasa do dziedziczeniaMicrosoft.AspNet.Identity.EntityFramework.User, więc stworzyłem klasę, która wygląda tak:

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

PrzeniosłemDbSets wymagane przez ASP.NET Identity do tej samej pochodnejDbContext klasa jako moje modele domenjak pokazano w tej odpowiedzi. PołączyłemIdentityUser jednokierunkowo doDomainUser poprzez Fluent API, jak to:

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

To pozwala mi głównie oddzielić obawy dotyczące autoryzacji i uwierzytelnienia od zachowań zdefiniowanych wDomainUser klasa. Jest to lepsze niż połączenie ich w jedną klasę, ale nadal jest brzydkie. Nadal mam odniesienia do wymaganych zestawów tożsamości ASP.NET w moim projekcie domeny. Mógłbym stworzyć kolejny projekt, który posiadałby tylko moją klasę IdentityUser i odwołanie do mojego zestawu Domeny, aby umożliwić właściwości nawigacyjne, ale to zaczyna być skomplikowane.

Czuję, że powinien istnieć lepszy, czystszy, bardziej modułowy sposób łączenia Tożsamości z domeną, bez powodowania ścisłego powiązania.

Czy ktoś wymyślił lepszy sposób radzenia sobie z tym? Mam nadzieję, że zwrócę uwagę osób zaangażowanych w projekt ASP.NET Identity (Hao Kung et al), aby wskazać kierunek.

questionAnswers(2)

yourAnswerToTheQuestion