c# - session 状态未在页面之间保存

标签 c# asp.net iis session-state

我在使用 asp.net c# 站点时遇到问题,我将 session 状态对象设置为 true,然后重定向到另一个需要检查 session 状态对象的值并且它为 null 的页面。

有时它设置正确,而其他时候只是空值。

当我在本地机器上调试时,它每次都能完美运行。只有当我上传到我的网络服务器时,这种喜怒无常的行为才会发生。

由于它基于网站的安全性,因此 session 数据每次都有效且准确显然很重要。

session 状态数据不可靠吗?

据我所知,它设置为 inproc、无 cookie、30 分钟超时、普通的 IIS 安装。

有人有什么建议吗?也许我需要在 session 数据的存储和读取之间进行 thread.sleep?

注意:写入和读取之间的时间约为 70 毫秒。有足够的时间将数据写入 RAM......

最佳答案

没有。听起来你在滥用 session 状态。您不能依赖用户的 session 。您的 ASP.NET 工作进程可能会回收,重新启动应用程序并终止所有 session ,或者您网站中的文件可能会更改,导致您的应用程序重新启动并刷新所有 session ,cookie 可能会在客户端上刷新,可能会发生超时,等等。

因此您必须为所有这些场景提供 session 状态。尽量避免为这样的事情使用 session 状态。如果您在 session 状态中设置访问权限并且您不确切知道它是如何工作的,那么您可能会打开您的站点以承担很多安全风险。

关于c# - session 状态未在页面之间保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758351/

相关文章:

asp.net - 如何诊断IIS致命通信错误问题

asp.net - IIS 8.5 访问路径被拒绝

c# - 正确处理 MVVM 父级中子级引发的事件

javascript - 带有 ajax slider 扩展控件的 asp.net 控件 2 文本框

c# - 如何在代码中更改(从不使用局部变量 '...')的前景文本颜色

c# - Asp.net 动态下拉列表

c# - 如何在发布中包含 asp.net core 2 依赖项

c# - 有没有办法根据 C# 对象的属性自动形成长 MySql INSERT 命令?

c# - 如何正确提供 PDF 文件

c# - 尝试从 C# 服务查询 IIS 时出现异常