【发布时间】:2010-10-10 06:04:57
【问题描述】:
我有一个 HTTP 模块来处理来自 Facebook 的身份验证,它在经典管道模式下运行良好。
但是,在集成管道模式下,我看到一个额外的请求通过默认文档,这导致模块失败。我们查看请求(来自 Facebook)以检索和验证访问我们应用程序的用户。初始请求验证正常,但随后我看到 second 请求,该请求缺少发布的表单变量,因此导致验证失败。
在集成管道模式下,对“/”的 http 请求会连续产生 2 个 AuthenticateRequest:
- AppRelativeCurrentExecutionFilePath = "~/" 的请求
- AppRelativeCurrentExecutionFilePath = "~/default.aspx" 的请求
第二个请求丢失了所有表单值,因此它无法进行身份验证。在经典模式下,第二个请求是唯一发生的请求,它会保留表单值。
有什么想法吗?
更新:这是来自 IIS 中模块通知的跟踪图像。请注意,我的模块 FBAuth 多次看到 AUTHENTICATE_REQUEST(我希望有 2 个 - 一个用于身份验证,一个用于身份验证后,但我得到 4 个)。
我开始相信这与模块/过滤器配置有关,因为我发现一个运行相同代码的 (Vista) 框不会重复触发这些事件 - 它的行为符合预期。我正在努力找出差异可能是什么......
谢谢! 汤姆
【问题讨论】:
标签: asp.net iis iis-7 httpmodule