You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD认证下局部页面更新时偶现CORS错误的排查求助

问题:Azure AD认证下Web Farm环境偶发CORS错误

环境与背景

  • 混合技术栈网站(ASP.NET、.NET Core、经典ASP),部署在Windows Server 2016 IIS,由2台服务器组成Web Farm,前端配置粘性会话负载均衡
  • 采用企业安全组搭建的Azure AD认证,网站面向公网,少量页面公开,多数页面需认证

错误现象

  • 仅部分用户偶发CORS错误,触发场景为使用.NET UI控件进行类AJAX的局部页面保存/编辑操作时,推测仅在认证令牌需刷新且操作处于局部页面更新过程中发生
  • 错误信息:

Access to XMLHttpRequest at 'https://login.microsoftonline.com/[...]'(redirected from 'https://WEBSITE/FOLDER/PAGENAME' ) from origin'https://WEBSITE' has been blocked by CORS policy: No'Access-Control-Allow-Origin' header is present on the requested resource.

已尝试的无效方案

  • 在站点顶级web.config中添加各类Access-Control自定义头(含通配符Access-Control-Allow-Origin),后全部移除;曾添加的配置如下:
Access-Control-Allow-Origin : https://[OUR-WEBSITE]
Access-Control-Allow-Credentials : true
Access-Control-Allow-Methods : GET, POST, OPTIONS
Access-Control-Allow-Headers : Origin, Content-Type, Accept
  • 移除设置为SAMEORIGIN的X-Frame-Options头
  • 配置允许连接login.microsoftonline.com的Content-Security-Policy-Report-Only策略,未收到拦截报告

复现与进展

  • 已通过Visual Studio 2022标准模板复现问题:创建ASP.NET Web Application(.NET Framework 4.8),选择Web Forms及Microsoft Identity平台认证,在Default.aspx中添加每2分钟调用Contact.aspx的JS代码,运行45分钟至1小时后出现相同错误
  • 8月9日更新:在启动代码中添加以下配置后,单服务器环境(工作站、开发/测试/预发布)问题已解决,但Web Farm生产环境仍会在约10分钟后出现相同错误,推测与Microsoft Identity刷新令牌无法识别目标服务器有关(已配置粘性会话):
CookieSameSite = SameSiteMode.None,
CookieSecure = CookieSecureOption.Always,
[...]Provider = new CookieAuthenticationProvider()
{
    OnResponseSignIn = (context) =>
    {
        context.Properties.ExpiresUtc = DateTimeOffset.UtcNow.AddHours(12);
    }
},
[...]new OpenIdConnectAuthenticationOptions
{
UseTokenLifetime = false,

求助需求

寻求可解决Web Farm环境下该问题的配置、头信息设置或其他排查方案

内容的提问来源于stack exchange,提问作者PhilipD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:12:45