Я пишу приложение asp.net MVC 2.0, и мне нужно получить имя пользователя после входа в систему и передать его другой функции. Я попробовал это, просто изменив стандартный метод LogOn для AccountController, вот мой код:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
using (ShopController newCtrl = new ShopController())
{
if (Session["TempCart"] != null)
{
newCtrl.CreateShoppingCartFromSession((Cart)Session["TempCart"], User.Identity.Name);
}
}
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Проблема в том, что, несмотря на то, что пользователь успешно вошел в систему, "User.Identity.Name" пусто, и я не знаю, почему ...
Любая помощь будет высоко ценится.