我有一个通过 ADFS 身份验证进行 Passport 身份验证的 SharePoint 应用程序 (App1)。我在另一个子域 (App2) 中有另一个 asp.net 应用程序,它也具有 ADFS 身份验证。从第一个应用程序我有一个 $.ajax (jquery) 调用来控制托管在另一个应用程序中。
问题是 FedAuth cookie 没有从 App1 发布到 App2。在 HTTP 跟踪中,我发现 FedAuth cookie 域名是特定于机器的。在 web.config “federatedAuthentication” 部分 -> cookieHandler 我提到域为“microsoft.com”。这解决了 FedAuth 在域属性中没有机器名称的问题。
进行此更改后,我遇到了以下错误:ID4230:SecurityToken 格式不正确。期望元素名称“SecurityContextToken”,找到“SP”。
在网上找不到帮助。尝试更改 cookieHandler 的路径和名称属性,但没有解决问题。更改名称会创建两个 FedAuth cookie。一种使用 FedAuth 名称,另一种使用新名称。
特别提示:如果认证后打开App1,将App2的URL粘贴到浏览器中,则静默认证正常,可以看到App2的控制。只有当我通过 Ajax 调用 App2 控件时才会出现问题。我尝试使用“凭据 = true -> XMLHTTPRequest 对象”调用 $.ajax,但无济于事。
任何帮助指针通过 Ajax 调用使静默身份验证工作正常?