我们为客户提供私人网站。客户经常告诉我们他们看到了其他用户的个人资料。
我们的身份验证过程如下所示: 凭证 - >检查数据库表 - > UserId保存在Session中。
据我所知,用户以某种方式切换到另一个用户的会话。有人能说出至少一种可能吗?
答案 0 :(得分:2)
在页面上启用输出缓存时,将缓存整个HTTP响应,包括响应标头。这意味着设置会话cookie的HTTP标头也可以缓存在那里。
确保在设置用户特定cookie的任何页面上禁用输出缓存。请注意,禁用内核模式缓存是不够的 - 整个响应也由ASP.NET运行时单独缓存。
但是,如果合适,您仍然可以在这些页面上安全地启用客户端缓存(Location="Client"
)。
答案 1 :(得分:1)
听起来好像是在静态变量中保存配置文件数据。此外,您永远不应该实现自己的身份验证机制,而是基于内置的asp.net表单身份验证。已经内置了对sql server based authentication的支持。