导航到 asp.net 上的新页面时会话丢失

Session gets lost on navigation to a new page on asp.net

身份验证时,用户的电子邮件将被检索并存储为会话数据,如下所示

protected void Page_Load(object sender, EventArgs e)
{
    string email = Request.Form["email"];
    HttpContext.Current.Session["email"] = email;
    Server.Transfer("Home.aspx");
}

电子邮件已成功存储,但是当我导航到新页面并尝试检索会话值时,如下所示。我看到会话已丢失

var email = (string)Session["email"] ?? "";

我已经在 web.config

中启用了会话状态
<pages enableSessionState="true">
<sessionState timeout="20" mode="InProc">

在 web.config 中将 rquireSSL 设置为 false 解决了这个问题。

<httpCookies requireSSL="false" />

在 asp.net 应用程序中,当使用 server.transfer 时它不起作用,因为不使用 server.transfer 而使用 Response.Redirect("Home.aspx") 这就是导致问题无法在主页中获取会话值的原因。

还要检查这个link希望对这个有用

Server.Transfer causing Session exception