Использование форм аутентификации для входа в систему и использования HttpContext.Current.User.Identity

Я сделал сайт со страницей, которая включает в себя форму бритвы. Пользователь может войти в эту форму, а затем перенаправляет на другую страницу. Вход (и выход) успешно работает с проверкой подлинности с помощью форм. Однако я не могу использовать HttpContext.Current.User.Identity.Name для извлечения сохраненного имени пользователя (в файле cookie для проверки подлинности форм). Возвращает пустую строку "".

Я использую MVC 5 и ASP 4.5 без стандартного членства или поставщиков ролей.

Авторизоваться:

 [HttpPost]
        public ActionResult Login(User user)
        {
            if (ModelState.IsValid)
            {
                bool authenticated = userscontroller.isAuthorized(user.Email, user.Password);
                if (authenticated)
                {
                    if (userscontroller.isAuthenticated())
                    {
                        userscontroller.deAuthenticateUser();
                    }
                    userscontroller.authenticateUser(user);
                    return Redirect(Url.Action("Index", "Home"));
                }
            }
        }

Аутентификация пользователя:

 public void authenticateUser(User user)
    {
        FormsAuthentication.SetAuthCookie(user.Username, false);
    }

Затем получить имя пользователя:

public User userFromCookie()
{
    if (isAuthenticated())
    {
        return getUserByUsername(HttpContext.Current.User.Identity.Name);
    }
    else { return null; }
}

isauthenticated ()

public bool isAuthenticated()
{
    if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
    {
        return true;
    }
    else
    {
        return false;
    }
}

WebConfig:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
 <authorization > <deny users="?"/> </authorization>

Таким образом, identity.name возвращает "".

Помощь приветствуется!

Ответы на вопрос(1)

Ваш ответ на вопрос