我想在C#中创建一个HttpModule,它将重定向任意的URL和丢失的文件,以及哪些将对所有进入的URL执行规范化。我的规范化过程的一部分是将默认文档(如http://www.contoso.com/default.aspx)重定向到裸目录。 (如http://www.contoso.com/)如何检测儿童请求?
我发现当IIS服务器收到一个裸目录的请求时,它会正常处理此请求,然后它会为选定的默认文档创建一个子请求。这是在我的模块中产生一个重定向循环 - 第一个请求经过很好,但是当它看到子请求时,它从URL中删除默认文档并重定向回裸目录,重新启动该过程。
显然,我需要解决的这个问题是我的模块知道它何时看到一个子请求,以便它可以忽略它。但我无法在网上找到任何描述如何区分两个请求的内容。我发现请求标头在两个请求之间持续存在,所以我尝试向请求标头添加一个值,然后查找该值。这在IIS 7中很有效,但显然IIS 6不会让您更改请求标头,而且我的代码需要同时运行。
不相关:我发布了一个小时后,Google搜索了“iis检测到孩子请求”,最热门的是这个问题。显然,Google对StackOverflow有很大的尊重,并且经常会将其索引为。 O_O – 2010-10-12 19:15:37
SO是一个技术相关性极高的网站,我并不感到惊讶。 – Aren 2010-10-12 20:40:12