需要有关ASP.Net或IIS请求URL Mangling的建议

时间:2011-09-29 19:02:54

标签: asp.net iis-7 webforms-routing

环境:

  • Server 2008
  • IIS 7,集成模式
  • .Net 4
  • ASP.NET WebForms Routing(使用与MVC路由相同的.dll,但我不确定哪个版本)
  • 无Cookie会话(会话ID在用户的URL上传播)。

我们有一个应用程序使用路由来识别用户与哪个组织相关联。该URL将采用domain / Organization / OrganizationSubCategory形式。用户关注其自定义网址并查看目标网页。当他们点击下一个时,他们被定向到收集一些人口统计信息的页面,然后他们点击下一步继续进入应用程序。当他们这样做时,将用户(如有必要)添加到我们数据库中的组织。在初始登录页面之后,路由不再适用 - 用户被定向到常规的aspx页面。

该网站正在接收相当数量的用户进入该应用;平均每天850个。

问题是少数(不到1%)的用户被添加到错误的组织中。

我们正在登录页面上以及提交人口统计页面时记录信息。我们记录的一件事是Request.RawUrl。我们开始注意与一个组织相关联的用户已经请求了另一个组织的完整正确的URL(包括子类别)。有时即使在同一天,也没有人合法地使用错误的组织URL。我们已经让人们直接报告他们刚刚创建了“子类别”(使用管理应用程序),指示用户遵循他们的唯一URL,但日志显示了该用户的完全不同的URL(我知道它是那个用户,因为我正在记录电子邮件地址和会话ID,因此我可以通过登录页面和人口统计页面关联同一用户的路径。就好像IIS有时会创建一个新会话,并简单地将一些先前请求的URL分配给该用户。

为了消除某种缓存,我们有:

  • 将配置httpRuntime元素的enableKernelOutputCache属性设置为false
  • IIS设置中禁用的缓存
  • 将config sessionState元素的regenerateExpiredSessionId属性设置为false(即使我们还没有看到会话ID被重用)。

其他建议?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

嗯,我们仍然完全没有信心,但似乎一个组织中的用户最有可能在互联网上搜索到系统中的URL并遵循这些。 我无法解释我们在原帖中所描述的报告 当我尝试增强日志记录以捕获事后会话创建以证明它时,开始请求事件的日志记录在我们的QA环境中工作(与生产相同),但只是平面在生产中不起作用。我永远无法确定原因。