环境:
- 服务器 2008
- IIS 7,集成模式
- .Net 4
- ASP.NET WebForms 路由(它使用与 MVC 路由相同的 .dll,虽然我不确定哪个版本)
- 无 Cookie 会话(会话 ID 在用户的 URL 上传播)。
我们有一个应用程序,它使用路由来识别用户与哪个组织相关联。URL 将采用 domain/Organization/OrganizationSubCategory 的形式。用户按照他们的自定义 URL 并看到一个登录页面。当他们点击下一个时,他们会被引导到一个收集一些人口统计信息的页面,然后他们点击下一个以继续应用程序。当他们这样做时,用户将被添加(如有必要)到我们数据库中的他们的组织中。在初始登录页面之后,路由不再适用 - 用户被定向到常规 aspx 页面。
该网站正在接收相当数量的用户进入该应用程序;平均每天850个。
问题是一小部分(不到 1%)的用户被添加到了错误的组织中。
我们正在登录页面以及他们提交人口统计页面时记录信息。我们记录的一件事是 Request.RawUrl。我们开始注意到与一个组织相关联的用户被记录为请求另一个组织的完整正确 URL(包括子类别)。有时,即使在同一天,也没有人合法地跟踪错误的组织 URL。我们让人们直接报告说他们刚刚创建了“子类别”(使用管理应用程序),指示用户遵循他们的唯一 URL,但日志显示该用户的 URL 完全不同(我知道就是这样用户,因为我正在记录电子邮件地址和会话 ID,因此我可以通过登录页面和人口统计页面关联同一用户的路径)。它'
为了消除某种缓存,我们有:
- 将配置 httpRuntime 元素的 enableKernelOutputCache 属性设置为 false
- 在 IIS 设置中禁用缓存
- 将配置 sessionState 元素的 regenerateExpiredSessionId 属性设置为 false(即使我们没有看到会话 ID 被重用)。
其他建议?