回发时“找不到指定的 URL”-asp.net windows 身份验证
Posted
技术标签:
【中文标题】回发时“找不到指定的 URL”-asp.net windows 身份验证【英文标题】:"The specified URL cannot be found" on postback - asp.net windows authentication 【发布时间】:2021-11-23 09:37:48 【问题描述】:我有一个使用 Windows 身份验证的 .net Web 应用程序。它是一个 Intranet,托管在 AWS 上,并具有 WAF。
有一半的时间,当有回发操作时,浏览器会立即在控制台中返回 404 错误,并显示“找不到指定的 URL”消息。在页面上。这似乎只发生在 Chrome 和 Edge 中,而不是 IE。
服务器设置和 web.config 都启用了 Windows 身份验证。
服务器日志显示一些 401.2 错误,但从我的阅读来看,这似乎是 Windows 身份验证的正常过程,某种身份验证挑战。这些 401.2 错误行也注册了 IE 浏览器,这再次证实了这一理论。
错误发生在 Web 应用程序能够捕获任何错误之前。即使将errorMode设置为Detailed,浏览器也只会显示“找不到指定的URL”消息。
如果有任何帮助,我将不胜感激。谢谢。
我的 web.config 的子集:
<system.web>
...
<authentication mode="Windows"/>
<identity impersonate="true"/>
<customErrors mode="Off"/>
</system.web>
<system.webServer>
...
<httpErrors errorMode="Detailed" />
</system.webServer>
【问题讨论】:
我发现this thread 有类似的问题。主要问题是参数数量超过40,导致WAF阻塞请求。根据标头信息,我的请求只发送了 10 个参数。 【参考方案1】:事实证明,WAF 由于标头数量过多而阻塞了请求。该问题已通过增加标头计数得到解决。
【讨论】:
如何增加标题计数?将该说明编辑为您的答案将使其对未来的读者更有用。以上是关于回发时“找不到指定的 URL”-asp.net windows 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET,使用 .Controls.Add() 添加的控件在页面回发时丢失,如果我使用 .InnerHtml 添加它们,我无法引用它们