导航到 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
身份验证时,用户的电子邮件将被检索并存储为会话数据,如下所示
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