【问题标题】:WIF SessionAuthenticationModule not executing correctlyWIF SessionAuthenticationModule 未正确执行
【发布时间】:2012-01-24 00:50:09
【问题描述】:

我有一个奇怪的情况正在发生,我正在尝试诊断并希望得到任何关于在哪里查看的建议。

我有一个使用 WIF 的 ASP.NET 应用程序,其中包含另一个 ASP.NET 应用程序作为 IIS 7.5 中的子应用程序。此子应用程序包含一个基于 REST 的 Web 服务。通过将 URL 粘贴到浏览器中直接访问此服务将重定向到 ADFS 登录页面。这就是我期望它起作用的方式。奇怪的是,我有第二个环境,部署了相同的应用程序和服务,在这个环境中,我永远不会被重定向到登录页面。

我检查了所有 web.config 文件是否相同,还检查了我认为可能相关的所有 IIS 设置。在第二个环境中浏览网页需要登录,但在直接浏览 REST .svc 文件时不需要登录。我检查了 IIS 中的所有 HttpModules 和 Handler Mappings。我还启用了 Microsoft.IdentityModel 事件的跟踪,并且在第一个环境中可以看到重定向到 STS 的基本条目。在第二个环境中,我看不到任何 WIF 事件。当我使用 IIS 失败事件跟踪检查数据流时,似乎调用了 SessionAuthenticationModule,但不确定为什么它不需要身份验证。

我熟悉 WIF 的 cookie 相关问题,并确保所有 cookieHandler 设置都是正确的。我还关闭了浏览器窗口并清除了所有 cookie,以确保 SessionAuthenticationModule 没有看到以前的 WIF cookie。

如果您能想到其他我应该检查的内容,请告诉我。

【问题讨论】:

    标签: wif


    【解决方案1】:

    如果您在绑定到同一个 ADFS 实例的两个不同环境中拥有相同的应用程序,那么 URL 肯定是不同的,所以我对“所有 web.config 文件都相同”的说法感到困惑?

    您是否尝试过在不起作用的应用程序上重新运行 FedUtil?

    同时检查 AppPool 设置。

    【讨论】:

      【解决方案2】:

      经过大量试验和错误并仔细检查两台服务器之间的 applicationHost.config 文件后,我发现这是由于 HTTP 处理程序的顺序不同造成的。 ExtensionlessUrl-Integrated-4.0 处理程序在一台服务器上接收请求并重定向到 ADFS。在另一台服务器上,svc-Integrated-4.0 处理程序首先响应请求。您可以在此处阅读有关此行为的更多信息:http://support.microsoft.com/kb/2520479

      【讨论】:

        猜你喜欢
        • 2012-12-16
        • 1970-01-01
        • 2013-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-20
        • 2015-01-21
        • 2019-06-17
        相关资源
        最近更新 更多