.NET 自定义会话状态提供程序:有时不会跨页面持续存在

发布于 2024-11-17 01:38:23 字数 433 浏览 3 评论 0原文

我在我的应用程序中为 Oracle 实现了一个自定义会话状态提供程序。它似乎运行顺利(没有错误!),但是当我重定向到另一个页面时,我在检索某些会话变量时遇到问题。但这种情况并不总是发生。

当会话启动时,我将一个 User 对象加载到会话中。它保留在那里,因为当用户到达起始页面(并通过身份验证)时,应用程序仍然可以识别他。从 Session 中检索 User 对象没有问题。

但是,如果我将一个值传递到应用程序内一个页面上的 Session,然后重定向到另一个页面以利用该 Session 变量,则新页面会从同名的 Session 变量中检索 null。使用 Visual Studio Watch 窗口,我实际上可以看到它的值从“100”(或其他)更改为 null。我不明白。

会话提供程序似乎工作正常,因为正如我所说,我能够保留一些变量。有人知道会话“丢失”值的原因是什么吗?谢谢。

I've implemented a custom session state provider for Oracle in my application. It seems to run smoothly (without errors!), but I'm having trouble retrieving some Session variables when I redirect to another page. But it doesn't happen all the time.

When the Session starts, I load a User object into Session. It stays there, because when the user gets to the starting page (and is authenticated), the app still recognizes him. It has no problem retrieving the User object from Session.

But if I pass a value into Session on one of my pages inside the app, then redirect to another page in order to utilize that Session variable, the new page retrieves null from the same named Session variable. Using the Visual Studio Watch window, I can actually see its value change from "100" (or whatever) to null. I don't get it.

The session provider seems to be working correctly because as I said, I'm able to persist some variables. Does someone know what the reason might be for Session to "lose" a value? Thanks.

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

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

发布评论

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

评论(1

勿挽旧人 2024-11-24 01:38:23

如果您在页面中执行response.redirect,则可能会导致线程在会话写回数据库之前中止。

If you are doing a response.redirect in the page, that can cause the thread to abort before the Session is written back to the database.

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