Как написать метод, который читает результат из actionResult, чтобы обновить состояние сеанса без получения нулевого исключения Refrence? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть простая страница входа в систему, и я создаю сеанс каждый раз, когда пользователь нажимает на 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. Что мне не хватает? и как с этим справиться?

...