ASP.NET表单认证流程中生产环境响应丢失.AUTH Cookie问题求助
故障排查方向
- 核对
web.config表单认证配置一致性
检查两台服务器<authentication mode="Forms">下的<forms>节点属性:- 如果配置了
requireSSL="true"但生产环境的认证请求走HTTP协议,服务端会直接放弃下发.AUTH Cookie - 如果
domain或path属性配置和当前请求的域名、路径不匹配,也会导致Cookie不会被生成返回 - 核对
<machineKey>节点:ASP.NET表单认证Cookie需要用机器密钥加密,如果生产环境机器密钥配置错误、或者开启了自动生成密钥且应用池发生过重启,会出现Cookie生成失败的情况
- 如果配置了
- 排查IIS 10层面配置差异
- 查看生产环境IIS的HTTP响应头规则,是否存在主动删除
Set-Cookie头的配置,或者全局SameSite强制校验规则导致.AUTH Cookie无法正常下发 - 检查是否配置了URL重写、反向代理类模块,这类模块可能在响应返回阶段意外移除
Set-Cookie头 - 确认生产环境应用池的.NET Framework版本和staging环境完全一致,不同版本的.NET对表单认证Cookie的生成逻辑存在差异(尤其是SameSite相关的功能补丁)
- 查看生产环境IIS的HTTP响应头规则,是否存在主动删除
- 验证认证服务运行时逻辑
- 查看生产环境认证服务的应用日志,确认请求到达时是否通过了身份校验,是否存在账号异常、权限校验失败、未生成身份票据的报错
- 确认是否有生产环境特有的流量拦截、WAF规则,在响应返回前移除了.AUTH Cookie相关的头信息
内容的提问来源于stack exchange,提问作者Xin Zhao
相关产品推荐
相关产品推荐

