会话的奇怪问题

发布于 2024-10-13 03:20:38 字数 534 浏览 4 评论 0原文

我们的会话状态发生了一些奇怪的事情。 我们的 ASP.NET C# 应用程序的会话超时为 10 分钟,但在页面之间重定向时似乎会丢失会话状态。

因此,我们设置会话值,并重定向到下一步,

        Session["temp"] = "somevalue";
        Response.Redirect("page2.aspx");

在 page2 的顶部,我们检查会话值,如果不存在,则重定向回开始(下面的代码是 Page_Load 上的第一个代码)):

        if (Session["temp"] == null)
        {
            Response.Redirect("start.aspx");
        }

问题是它继续执行此重定向,即使会话不应该超时。

我已经检查了配置文件,它有一个机器密钥,因为我被告知如果它不存在,有时会导致问题。

还有其他原因可能导致我们输掉会话吗?

I have something strange going on with our session state.
Our ASP.NET C# application has a session timeout of 10 min, but it seems to be losing session state when redirecting between pages.

So, we set out session value, and redirect to the next step,

        Session["temp"] = "somevalue";
        Response.Redirect("page2.aspx");

At the top of page2, we check the session value, and if it's not there, redirect back to the start (the code below is the first on Page_Load):

        if (Session["temp"] == null)
        {
            Response.Redirect("start.aspx");
        }

The issue is it keeps on doing this redirect, even though the session should not have timed out.

I have checked the config file, and it has a machinekey, as I have been informed that this can sometimes causes issues if it's not there.

Is there something else that could be causing us to lose the session?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

随风而去 2024-10-20 03:20:38

根据会话的配置方式,cookie 问题可能会导致您丢失会话。也可以切换域/在 http 和 https 之间切换。

顺便说一句,如果您通过移动连接进行连接,您的 cookie 可能会发生各种可怕的事情......

Depending how your session's configured, cookie problems can cause you to lose session. As can switching domains / switching between http and https.

And as an aside, if you're connecting over a mobile connection, all sorts of horrible things can happen to your cookies...

水染的天色ゝ 2024-10-20 03:20:38

禁用 Cookie 可能会出现问题。您还可以使用单页创建全新的应用程序(使用默认的 web.config,无需任何更改)并对其进行测试。这将告诉您问题是特定于应用程序还是特定于服务器。

Disabled Coockies may be issue. You can also create brand new application (with default web.config without any change) with single page and test it. This will tell you whether the problem is application specific or server specific.

呆萌少年 2024-10-20 03:20:38

尝试添加到 system.webServer -> web.config 中的 module 部分下几行:

<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />

try to add to system.webServer -> modules section in web.config next lines:

<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文