0

环境:

  • 服务器 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 被重用)。

其他建议?

4

2 回答 2

0

好吧,我们仍然不能完全确定,但似乎一个组织中的用户最有可能在 Internet 上搜索以找到进入系统的 URL 并遵循这些 URL。
我无法解释我们在原始帖子中描述的报告。
当我尝试增强日志记录以捕获发布前会话创建以肯定地证明这一点时,开始请求事件的日志记录在我们的 QA 环境(与生产环境相同)中有效,但在生产环境中无法正常工作。我永远无法确定为什么。

于 2011-10-20T18:36:08.440 回答
0

这些是内部用户吗?是否有代理注意事项?不过,这并不能解释错误的网址。您是否 100% 确定用户获得了 URL A 并且他们显示了 URL b?您当前是否分配了任何路由模块?您确定它不会被另一个模块中的规则重写吗?

这可能是他们的“新用户”电子邮件(例如)包含错误 URL 的应用程序问题吗?

于 2011-09-29T19:31:41.733 回答