Я новичок в .Net и создаю веб-приложение, в котором я хочу создать сеанс, когда пользователь входит в систему или регистрируется и подтверждает регистрацию.Для входа в систему у меня есть страница бритвы: Войдите в систему, где он просто запрашивает у пользователя имя пользователя и пароль, которые должны быть на моем сервере sql и проверены.Как только он проверит, что действительный флаг пользователя правильный, я хочу создать сеанс и отправить пользователя в Index на данный момент.Затем в Index я хочу посмотреть, был ли создан сеанс, и хочу прочитать значение в сеансе и отобразить его в представлении Index, чтобы подтвердить, что информация о пользователе была захвачена.
Мой файл Login.cs выглядит такэто:
public ActionResult OnPost(string UserName, string Password)
{
if (!ModelState.IsValid)
{
return Page();
}
if(accountService.ValidateUserLogin(UserName, Password) == 1)
{
string Email = accountService.UsernameGetEmail(UserName);
HttpContext.Session.SetString(Email, TempData["email"].ToString());
return RedirectToPage("/Index");
}
else
{
//report error to user
return Page();
}
}
Здесь я пытаюсь получить информацию о сеансе на моей странице Index.cs:
public void OnGet()
{
if (HttpContext.Session.Id != null)
{
SessionEmail = HttpContext.Session.GetString("Email");
ViewData["SessionEmail"] = SessionEmail;
}
}
Это фрагмент HTML, где я пытаюсь отобразить этот SessionEmailна представление, но при инициализации SessionEmail внутри файла index.cs оно становится пустым.
<div>
@{
if( ViewData["SessionEmail"] != null)
{
<p> Hello! @ViewData["SessionEmail"].ToString() </p>
}
}
</div>
Надеюсь, вы можете указать на мои ошибки здесь и на то, как я пытаюсь настроить сеанс.После того, как я смогу установить сеанс, я собираюсь изменить панель навигации моего макета так, чтобы она изменилась, если пользователь вошел в систему или нет, может быть, если вы сможете указать, как я могу сделать это с сеансами, которые были бы хороши,возможно: httpcontext.session.IsAvailable?Кроме того, у меня есть addSession и useSession при запуске.