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");
登录应用程序后,我们在 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");