Correggimi se sbaglio, quello che volevi fare tu è un controllo utente(quindi un'interfaccia utente +o- complessa da poter riutilizzare),in questo preciso caso una maschera di login.
Bisogna distinguere i controlli utente dai controlli personalizzati, i primi sono diversi controlli raggruppati ai quali puoi aggiungere delle proprietà che puoi recuperare dal file dal quale vengono richiamati, però li devi vedere come dei controlli(In questo caso 2 caselle di testo che formano un solo controllo).
Puoi accedere alle proprietà e alle variabili dichiarate nel file.ascx, ma le funzioni e le routine(Sub) sono di uso interno al controllo.
E' come se volessi richiamare una funzione di un textbox.
Io personalmente non li uso perchè non mi è mai servito riutilizzare la stessa identica maschera in pagine diverse.
Quindi non posso essere perfettamente sicuro di quello che ti ho appena detto, però a suo tempo quando li avevo studiati mi era sembrato di aver capito così.
I secondi invece possono essere quello che vuoi, e aggiungo che secondo il mio punto di vista sono la cosa più bella di .net.
Per farti un esempio, l'altro giorno avevo bisogno di avere un check all'interno di una griglia, però mi serviva che questo controllo ritornasse diversi valori, non soltanto un boolean.
In 5 minuti mi sono creato un check personalizzato che ha l'aspetto di un normale checkbox, che però fa tutto quello che fa un pulsante(CommandName,CommandArgument ecc..).
Se invece intendevi sapere come fare per recuperare il valore inserito nei textbox(i classici username e password), in ogni sub o function all'interno del file aspx li puoi "beccare" accedendo prima al controllo.ascx poi alla property che ti interessa:

Nome_controllo_ascx.Nome_property

Oppure se dichiari ad esempio una variabile "colore_di_fondo" per lo sfondo della tabella:

Nome_controllo_ascx.colore_di_fondo

Spero di avere interpretato bene quello che volevi sapere, oltre ad aver divagato un po'.....
Ciao
Legnetto