Se mi dici che ritorna true non dovrebbero esserci problemi di connessione, dal codice che vedo vuol dire che la query è stata eseguita.
Prova a togliere dal controllo di login il nome del provider (è già specificato nel web.config e basta quello):
<asp:Login runat="server" ID="contrLogin" MembershipProvider="MyMembershipProvider"
e verifica in debug che venga ancora chiamato il metodo validateuser.
Un'altra prova che puoi fare è quella di fare una prova con un controllo di login pulito, senza eventi:
<asp:Login runat="server" ID="contrLogin"
DestinationPageUrl="~/index.aspx">
<TitleTextStyle BackColor="#6B696B" Font-Bold="True" ForeColor="#FFFFFF" />
</asp:Login>
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko