Вполне возможно, что при установке переменной сеанса:
Session["regCode"] = loginBase.getRegCodePerUser(txtLogin.Text);
что имя пользователя еще не доступно, и поэтому оно возвращает пустую строку, и я предполагаю, что вы выполняетеэтот код: lblStatus.Text =loginBase.getRegCodePerUser(txtLogin.Text);
на другой странице / после того, как пользователь вошел в систему, и поэтому вы получаете значение в метке, когда назначаете его напрямую.
Поместите точку останова в место, где вы устанавливаете переменную Session, и посмотрите, устанавливается ли это значение.
В противном случае ваши настройки сеанса могут быть неверными в вашем файле web.config, что приводит к тому, что значения сеанса будуточищается перед переходом на вторую страницу, где вы к ней обращаетесь.