Proveedor MembershipProvider personalizado: no se ha definido ningún constructor sin parámetros para este objeto

Tengo una clase personalizada MembershipProvider que hereda de MembershipProvider que toma dos parámetros:

public class CustomMembershipProvider : MembershipProvider
{
    private readonly ISecurityRepository _securityRepository;
    private readonly IUserRepository _userRepository;

    public CustomMembershipProvider(ISecurityRepository securityRepository, IUserRepository userRepository)
    {
        ...
    }

    public override MembershipUser GetUser(string username, bool userIsOnline)
    {
        ...
    }

    ... etc
}

El archivo de configuración para esto se parece a esto:

<membership defaultProvider="CustomMembershipProvider">
  <providers>
    <clear />
    <add name="CustomMembershipProvider" type="Library.Membership.CustomMembershipProvider" />
  </providers>
</membership>

Esto funciona bien principalmente en mi aplicación web para iniciar sesión y cerrar sesión. Estoy usando Unity para DI y tengo las clases necesarias configuradas en mi clase Boostrapper.cs.

Sin embargo, recientemente me topé con un problema cuando quería crear una clase de usuario personalizada y llamé alMembership.GetUser método. Obtengo la siguiente excepción cuando lo hago:

{"No parameterless constructor defined for this object. (C:\\*app path*\\web.config line 43)"}

La línea 43 en mi archivo de configuración apunta al proveedor de membresía personalizado que publiqué anteriormente. Creo que en otros lugares, la aplicación está usando Unity para resolver esos parámetros, pero cuando usa la clase Membership no lo hace.

¿Hay alguna forma en que pueda decirle a la aplicación cómo resolver esas dependencias o, si no, hay una manera de agregar esas dependencias a mi proveedor de membresía sin usar la implementación concreta?

EDITAR 1:

Aquí está la clase de usuario personalizada:

public class User : MembershipUser
{
    public int UserId { get; set; }
    public string Username { get; set; }
    public string Email { get; set; }
    public DateTime LastLoggedOnDate { get; set; }
    ...         
}

EDIT 2:

En mi clase de proveedor de membresía personalizada, este es el aspecto del método GetUser:

public override MembershipUser GetUser(string username, bool userIsOnline)
{
    return _userRepository.GetUser(username);
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta