出于技术原因,我们在我们的应用程序中实现了两个不同的 STS 网站。这些 STS 颁发基于不同证书的令牌。
我们有一个主应用程序和一个子应用程序,每个应用程序都配置为使用和信任这些 STS 网站之一。
两个应用程序都使用 Claim Type Name 来设置登录时的用户名,然后这会出现在依赖方应用程序 UI 中。
我的问题是,如果我登录到一个 STS,一切都很好。当我登录到其他应用程序/STS 时,第一次登录时出现在 UI 中的名称被替换为第二次登录的名称。
我只能假设 STS 使用完全不同的证书来签署令牌,除非配置为在 web.config 中信任,否则它们将被依赖方忽略。这就是我设置它的方式。
从调试来看,一切似乎都运行良好。创建令牌时使用正确的 STS 和正确的证书。
我可以看到,当我登录到第二个应用程序时,现有的 FedAuth cookie 会增长,因此两个会话的声明都被添加到同一个 cookie 中。
如果有人能就如何使 STS 发行的代币完全相互独立提供一些建议,我将不胜感激。
非常感谢,约翰