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

ASP.NET Windows认证场景下postback出现“The specified URL cannot be found”404报错

问题根因

该问题由Chromium内核(Chrome/Edge)的Windows身份验证逻辑与ASP.NET WebForms PostBack机制、AWS WAF规则的冲突导致,核心触发点如下:

  • Chromium内核默认的NTLM/Kerberos身份验证缓存有效期远短于IE,PostBack触发时如果缓存过期,浏览器会优先发送不带身份凭证的POST请求触发质询
  • AWS WAF默认规则会拦截无有效身份标识的POST请求,直接返回404,中断正常的401质询流程
  • 部分场景下Chromium解析WebForms自动生成的PostBack相对路径时会额外添加尾斜杠,导致路径不匹配触发404

解决方案

按优先级依次尝试以下操作:

  1. 调整AWS WAF规则,放行身份验证阶段请求
    针对该Web应用的站点域名,新增WAF规则放行以下场景的请求:
    • 请求方法为POST、且请求头不含Authorization字段、且返回码为401的请求不触发拦截
    • 排除WebForms内置的__VIEWSTATE、__EVENTTARGET等PostBack专属字段的威胁检测规则,避免WAF误判为恶意请求拦截
  2. 补充web.config身份验证配置
    在原有配置基础上修改system.webServer节点,明确Windows身份验证参数,禁用匿名访问,移除无关的身份验证模块:
    <system.web>
        ...
        <authentication mode="Windows"/>
        <identity impersonate="true"/>
        <customErrors mode="Off"/>
        <!-- 固定PostBack提交路径,避免相对路径解析异常 -->
        <pages controlRenderingCompatibilityVersion="4.0" actionlessForm="true">
        </pages>
    </system.web>
    <system.webServer>
        ...
        <httpErrors errorMode="Detailed" />
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
                <windowsAuthentication enabled="true" useKernelMode="true">
                    <!-- 优先使用NTLM,避免AWS环境Kerberos SPN配置异常导致的协商失败 -->
                    <providers>
                        <clear />
                        <add value="NTLM" />
                        <add value="Negotiate" />
                    </providers>
                </windowsAuthentication>
            </authentication>
        </security>
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="FormsAuthentication" />
        </modules>
    </system.webServer>
    
  3. 配置Chromium内核浏览器策略(内网环境可批量推送)
    针对Chrome/Edge浏览器,将站点域名加入身份验证白名单,让浏览器自动携带Windows凭证发起请求,避免触发无凭证的预请求:
    • 打开浏览器策略配置页(Chrome输入chrome://policy,Edge输入edge://policy)
    • 新增两项字符串策略:AuthServerAllowlist、AuthNegotiateDelegateAllowlist,值填写你的站点域名,例如*.yourdomain.com
    • 重启浏览器后验证
  4. IIS配置校验
    打开IIS站点的身份验证配置,右键点击Windows身份验证选择「高级设置」,勾选「启用内核模式身份验证」,和web.config配置保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:15:03