gpt4 book ai didi

xmlhttprequest - 当 ADFS 身份验证 session 过期时,XHR 请求失败

转载 作者:行者123 更新时间:2023-12-04 18:06:03 26 4
gpt4 key购买 nike

我们有一个站点依赖于使用 Active Directory 联合身份验证服务 (ADFS) 和 WSFederationAuthenticationModule 的联合身份验证。

该站点还采用了一组在用户交互时触发的 XHR 请求。一个特定示例是允许用户冒充其他用户的下拉菜单。另一个是全站点搜索页面上的分面功能。

问题是当用户在页面上保持非事件状态一段时间后, session 就会过期。例如,在用户单击链接时的普通 HTTP 请求中,这不是问题。 session 过期后,用户将被重定向到 STS,并在用户根本没有注意到的情况下迅速返回 - 这发生得够快了。

但是 XHR 请求失败。控制台中的实际错误消息是:

XMLHttpRequest cannot load https://adfs.contoso.com/adfs/ls/... 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'https://www.example.com' is therefore not allowed access.

XHR 请求似乎无法像常规 HTTP 请求那样重定向到 STS,然后再返回到依赖方,因为这会导致 CORS 问题。

这自然会破坏页面上依赖特定 javascript 的所有元素。用户解决此问题的唯一方法是在出现问题时刷新页面。

解决这个问题的正确方法是什么?

最佳答案

唯一对我有用的解决方案是 Pinpont 在这个答案中提供的解决方案:https://stackoverflow.com/a/28631956/6299975

这就是我为实现滑动过期所做的。

app.UseCookieAuthentication(new CookieAuthenticationOptions() 
{
SlidingExpiration = false
});
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
MetadataAddress = xxxxxxx,
Wtrealm = xxxxxx,
UseTokenLifetime = false,
}

);

SlidingExpiration = false 在 CookieAuthenticationOptions

UseTokenLifetime = false 在 WsFederationAuthenticationOptions

关于xmlhttprequest - 当 ADFS 身份验证 session 过期时,XHR 请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26609768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com