我有一个HTTP模块来处理来自Facebook的身份验证,在传统的管道模式下工作正常。IIS - 集成管道模式下对默认文档的不同处理?
但是,在集成管道模式下,我看到一个额外的请求传递给默认文档,导致模块失败。我们查看来自Facebook的请求以检索并验证访问我们应用的用户。初始请求认证正常,但后来我看到第二个请求,它缺少发布的表单变量,从而导致认证失败。
在集成管道模式,为 “/” 的产率2个AuthenticateRequests连续的HTTP请求:
- 的请求,其中AppRelativeCurrentExecutionFilePath = “〜/”
- 的请求,其中AppRelativeCurrentExecutionFilePath =“〜/默认.aspx“
第二个请求失去了所有的表单值,因此无法进行身份验证。在经典模式中,第二个请求是唯一发生的请求,它保留了表单值。
任何想法这里发生了什么?
更新:这是IIS中模块通知的跟踪图像。请注意,我的模块FBAuth多次看到AUTHENTICATE_REQUEST(我期望2 - 1用于身份验证,另一个用于postauthenticate,但我得到4)。
我开始相信这事做与模块/过滤器的配置,因为我发现运行不重复触发这些事件相同的代码(Vista)的盒子 - 它的行为如预期。我正在努力通过试图找出差异可能是什么...
谢谢! 汤姆
伟大的链接,尽管我不相信我遇到过这些问题。我正在使用一个模块,而不是一个处理程序,并且我正在监视的事件是身份验证事件。虽然这可能解释了为什么我看到它两次,但这并不能解释为什么http信息丢失(例如,形式变量)。 – 2009-02-28 03:01:06