Вы всегда должны перенаправить после установки куки проверки подлинности форм:
public ActionResult SomeAction()
{
FormsAuthentication.SetAuthCookie("test", true);
return RedirectToAction("FooBar");
}
Это только в последующих действиях перенаправления к тому, что вы получите User.Identity.Name
должным образом инициализированы. Причина в том, что это довольно просто: свойство User.Identity.Name
инициализируется из файлов cookie «Запрос» (например, входящих файлов cookie), тогда как FormsAuthentication.SetAuthCookie
устанавливает аутентификацию форм для ответа (он же испускает куки-файл), так что при последующих запросах этот файл cookie будет отправлен запрос.
где вы это называете? –
Я устанавливаю «FormsAuthentication.SetAuthCookie (« test », true); в контроллере и вызове «Context.User.Identity.Name» из Layout.cshtml (главная страница) –
находятся ли они в одном запросе? –