Best guess? You don't check in your Page Load event handler to see if it's a post back or not, and clear the password field.
Since you get a page load every time the user clicks a button, and it occurs before the button click event the field will always be blank.
Try:
private void Page_Load()
{
if (!IsPostBack)
{
...
}
}