У меня есть простая страница входа в систему, и я создаю сеанс каждый раз, когда пользователь нажимает на URL сайта.
Мне нужно обновить таблицу журнала при успешной попытке входа в систему.
Мой код входа выглядит так:
[HttpGet]
public ActionResult Login()
{
Helper helper = new Helper();
var session = helper.CreateSession();
if (session.SessionID != 0)
{
Session["sessionId"] = session.SessionID;
return View();
}
else
{
return Redirect("error");
}
}
[HttpPost]
public ActionResult Login(Login id)
{
string name = id.name;
string password = id.password;
if (ModelState.IsValid)
{
if (name == "123456" && password == "password")
{
sessionData.UserID = id.name;
saveSession.Session.UserID = id.name;
return RedirectToAction("Index", "Home");
}
}
return View();
}
Класс сеанса выглядит следующим образом:
public class Session
{
public Int64 SessionID { get; set; }
public string CookieID { get; set; }
public string UserID { get; set; }
}
Класс SaveSession выглядит следующим образом:
public class SaveSession
{
public static SaveSession Create(Session session)
{
var r = new SaveSession();
r.Session = session;
return r;
}
}
оба класса создаются в контроллере
Я получаю исключение nullReferenceException при сохранении идентификатора пользователя в сеансе, поскольку он не видит идентификатор сеанса, созданный при первом входе в ActionResult. Что мне не хватает? и как с этим справиться?