Im пытается передать имя пользователя в ASP.NET MVC 4 после того, как они вошли в систему, но я не могу определить способ передачи данных для передачи.Asp.net MVC 4 - Передача данных через классы
Вот действие входа с именем «Auth», которое получает информацию о пользователях после его набора.
public string name;
account userInfo;
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Auth(account user)
{
if (ModelState.IsValid)
{
userInfo = GetUser(user);
if (userInfo.rank == "a")
{
Session["IsAdmin"] = true;
Session["IsMember"] = true;
name = userInfo.username;
return RedirectToAction("Index", "Mod");
}
if (userInfo.rank == "member")
{
Session["IsMember"] = true;
name = userInfo.username;
return RedirectToAction("Index", "Post");
}
}
name = userInfo.username;
return View("Login");
}
После имя переменной установлено, я пытаюсь получить значение из моего PostController Индекса View, который является показателем моего сайта с помощью наследования для отображения, но переменная сбрасывается на нуль .. Heres действие Index используется для вызовите переменную имени из моего AccountController, где находится действие Auth.
public class PostController : AccountController
{
public ActionResult Index(int? id)
{
/*EncryptConString();*/
int pageNum = id ?? 0;
IEnumerable<Post> posts =
(from post in db.Posts
where post.time < DateTime.Now && post.category == "Blog Post"
orderby post.time descending
select post).Skip(pageNum * postCount).Take(postCount +1);
ViewBag.IsPreviousLinkVisible = pageNum > 0;
ViewBag.IsNextLinkVisible = posts.Count() > postCount;
ViewBag.PageNumber = pageNum;
Session["ShowSide"] = true;
ViewBag.showSidebar = showSidePanel;
ViewBag.SecAbvPosts = secAbvPosts;
ViewBag.IsAdmin = IsAdmin;
ViewBag.IsMember = IsMember;
ViewBag.Name = name;
return View(posts.Take(postCount));
}
}
Есть ли другой способ, я могу это сделать? Я пытаюсь получить информацию о пользователях после входа в систему, чтобы отобразить ее на странице индекса вместе с их рисунком профиля. Пожалуйста, помогите !!
Каждый запрос обрабатывает новый экземпляр контроллера. Подумайте, как вы можете сделать это без гражданства. Кэширование и сеанс можно использовать там, где это необходимо. Имейте в виду, что использование сеанса требует, чтобы запросы обрабатывались последовательно, а не асинхронно. –