会话变量未在Response.Redirect上维护

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会话变量未在Response.Redirect上维护相关的知识,希望对你有一定的参考价值。

我有一个登录页面,我在登录时重定向到另一个页面。我在Session中保存了一些数据,但无法在Page2.aspx中检索相同的数据。

我发现一些博客和网站说明了同样的问题,但他们的解决方案不起作用。

这是我的Page1.aspx代码

会话[“用户名”] =名称;的Response.Redirect( “〜/ Page2.aspx”,假);

在Page2.aspx中

 protected void Page_Load(object sender, EventArgs e)
 {
     if (Session["Username"] != null)
         ClientScript.RegisterStartupScript(GetType(), "", "sendtoken();", true);
     else
         Response.Redirect("Page1.aspx");                 
}

Session [“Username”]为空

n web.config中的代码很简单。我试过用

sessionState timeout =“2”

ñ

mode =“InProc”和“StateServer”

答案

最常见的原因是cookie被禁用。您需要使用cookie,或切换到无Cookie会话模型,这有点难以使用。参考这个

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q316112

另一答案

旧的,但我有类似的问题。确保您的iis中没有使用Web园设置。换句话说,检查您的应用程序池是否包含多个工作进程(这是默认值)。

应用程序池 - >高级设置 - >最大工作进程

enter image description here

以上是关于会话变量未在Response.Redirect上维护的主要内容,如果未能解决你的问题,请参考以下文章

Response.Redirect 适用于 Visual Studio,但不适用于 IIS

会话变量未在函数中设置

会话变量未在实时服务器中传递[关闭]

.NET C# 会话变量未在 Safari 浏览器中更新

在 ASP.NET 中使用带有友好 URL 的 Response.Redirect

Response.Redirect 使用 POST 而不是 Get?