Mejores prácticas para integrar la identidad de ASP.NET, ¿existen?

Estoy usando la identidad de ASP.NET con un nuevo sitio web y no parece haber muchos (¿algunos?) Ejemplos de cómo hacer esto de manera desacoplada. No quiero los modelos de mi dominio.DomainUser clase para tener que heredar deMicrosoft.AspNet.Identity.EntityFramework.User, así que he creado una clase que se parece a esto:

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

He movido elDbSets requerido por la identidad de ASP.NET en el mismo derivadoDbContext clase como mis modelos de dominiocomo se ilustra en esta respuesta. He vinculado elIdentityUser unidireccional a laDomainUser a través de Fluent API como así:

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

Esto me permite separar principalmente las preocupaciones de autorización y autenticación de los comportamientos definidos en elDomainUser clase. Esto es mejor que combinarlos en una clase, pero todavía se siente feo. Todavía tengo referencias a los ensamblados de Identidad ASP.NET requeridos en mi proyecto de Dominio. Podría crear otro proyecto que contenga solo mi clase IdentityUser y una referencia a mi ensamblaje de Dominio para permitir la propiedad de navegación, pero eso comienza a parecer complicado.

Siento que debería haber una forma mejor, más limpia y más modular de vincular la Identidad al dominio sin que esto resulte en un acoplamiento apretado.

¿Alguien ha ideado una mejor manera de manejar esto? Espero atraer la atención de los involucrados en el proyecto de identidad de ASP.NET (Hao Kung et al) para proporcionar dirección aquí.

Respuestas a la pregunta(2)

Su respuesta a la pregunta