FormsAuthentication.SetAuthCookie(tbUsername.Text, true);
bool x = User.Identity.IsAuthenticated; //true
string y = User.Identity.Name; //""
Проблема, с которой вы столкнулись, заключается в том, что на данный момент вы устанавливаете только куки аутентификации, IPrincipal, который создается внутри модуля аутентификации форм, не будет происходить до тех пор, пока не появится новый запрос - поэтому в этот момент HttpContext.User находится в странное состояние. Как только произойдет перенаправление, так как это новый запрос от браузера, cookie будет прочитан до того, как ваша страница будет достигнута, и будет создан правильный объект пользователя.
Файлы cookie устанавливаются в браузере только после завершения запроса.
Поскольку RedirectFromLoginPage в стороне создает в любом случае файл cookie для проверки подлинности форм, вам не нужно делать это вручную