MembershipProvider personalizado: nenhum construtor sem parâmetros definido para este objeto

Eu tenho uma classe MembershipProvider personalizada que herda de MembershipProvider que usa dois 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
}

O arquivo de configuração para isso é semelhante a este:

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

Isso funciona bem principalmente em todo o meu aplicativo da web para efetuar logon e logout. Estou usando o Unity for DI e tenho as classes necessárias configuradas na minha classe Boostrapper.cs.

No entanto, recentemente, tive um problema quando queria criar uma classe de usuário personalizada e chamei oMembership.GetUser método. Recebo a seguinte exceção quando faço:

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

A linha 43 no meu arquivo de configuração aponta para o provedor de associação personalizado que publiquei acima. Eu acho que em outro lugar o aplicativo está usando o Unity para resolver esses parâmetros, mas ao usar a classe Membership, isso não acontece.

Existe alguma maneira de dizer ao aplicativo como resolver essas dependências ou, caso contrário, existe uma maneira de adicionar essas dependências ao meu provedor de associação sem usar a implementação concreta?

EDIT 1:

Aqui está a classe de usuário 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:

Na minha classe de provedor de associação personalizada, é assim que o método GetUser se parece:

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

questionAnswers(3)

yourAnswerToTheQuestion