ASP.NET Membership Lock User

Visto que não temos uma forma directa de indicar que determinado utilizador irá estar bloqueado, a única forma que arranjei para o fazer foi forçar o erro no login múltiplas vezes, até atingir o valor máximo de tentativas definidas no atributo “maxInvalidPasswordAttempts”.

Quando usamos o Membership do ASP.NET, no web.config teremos algo como:

O código que utilizo é então o seguinte:

public static bool LockUser(MembershipUser user)
{
    try
    {
        for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++)
            Membership.ValidateUser(user.UserName, "thisisandummypasswordonlytolocktheuser");

        return user.IsLockedOut;
    }
    catch (Exception)
    {
        throw;
    }
            
}

Espero que seja util.