ASP.Net 核心 MVC 中的会话值不匹配

Session Value Mismatch in ASP.Net Core MVC

登录应用程序后,我们在 Login 控制器的会话变量中设置一个值,如下所示:

public ActionResult Login(LoginInfo loginInfo, string returnUrl)
{
    //...
    HttpContext.Session.SetString(SessionKeyPID, 226617); //PersonId - 226617
}

但稍后当我们尝试在另一个控制器中使用以下内容时:

[HttpGet]        
public JsonResult GetDetails()
{
    int person = Convert.ToInt32(HttpContext.Session.GetInt32(SessionKeyPID));
}

我得到了不同的值,例如 842151478 而不是 226617。为什么我没有得到相同的价值。我可以获得相同的值吗?

改变

int person = Convert.ToInt32(HttpContext.Session.GetInt32(SessionKeyPID));

int person = Convert.ToInt32(HttpContext.Session.GetString(SessionKeyPID));

您还需要将会话 key-value 设置为字符串,例如:

// 226617 --> "226617"
HttpContext.Session.SetString(SessionKeyPID, "226617");