【问题标题】:ASP.NET session switchingASP.NET 会话切换
【发布时间】:2010-12-30 10:58:00
【问题描述】:

我们有一个供客户使用的私人网站。客户经常告诉我们他们看到了另一个用户的个人资料。

我们的身份验证过程如下所示: 凭据 -> 检查数据库表 -> 保存在 Session 中的 UserId。

据我了解,用户以某种方式切换到另一个用户的会话。谁能说出至少一种可能性?

【问题讨论】:

  • 这里有类似的问题。试试那里提出的解决方案。 stackoverflow.com/questions/1646274/…
  • 正如您所解释的,用户应该不可能获得彼此的会话。但也许你应该发布一些代码。
  • 感谢您的指导。在 web.config 中关闭了输出缓存。希望能解决问题。
  • 如果你能发布一些代码,它可能会有所帮助。

标签: asp.net session


【解决方案1】:

在页面上启用输出缓存时,会缓存整个 HTTP 响应,包括响应标头。这意味着设置会话 cookie 的 HTTP 标头也可以缓存在那里。

请务必在设置用户特定 cookie 的任何页面上禁用输出缓存。请注意,仅禁用内核模式缓存是不够的——整个响应也由 ASP.NET 运行时单独缓存。

但是,如果合适的话,您仍然可以安全地在这些页面上启用客户端缓存 (Location="Client")。

【讨论】:

  • 很抱歉,我找不到关闭此输出缓存的方法。你能帮我看看门吗?
  • 您的 *.aspx 文件顶部是否有 <%@ OutputCache %> 指令?或者您是否对页面背后代码中的Response.Cache 对象或它使用的任何控件或母版页进行了任何调用?
【解决方案2】:

听起来您正在将配置文件数据保存在静态变量中。此外,您永远不应该实现自己的身份验证机制,而应基于内置的 asp.net 表单身份验证。已经内置了对sql server based authentication 的支持。

【讨论】:

    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2011-04-15
    • 1970-01-01
    • 2015-03-10
    相关资源
    最近更新 更多