安装 Windows 更新后,HttpHandler 中的会话无法正常工作
After installing Windows update the session in HttpHandler does not work properly
安装 Windows 更新 2020 后 - HttpHandler 中的 KB4534273 和 2020-KB4535101 会话无法正常工作。
对于 SAML2 身份验证,在 SP 端处理响应时,我会验证响应与发送的请求。但是,在安装更新后处理更新时,我没有可用的会话。
IDP是https,SP是http。
我的处理程序实现接口 IRequiresSessionState
public class Saml2Handler : IHttpHandler, IRequiresSessionState
该解决方案之前有效...
请参阅这篇 Microsoft 文章中的已知问题:https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite#known-issues
我们在修补服务器后遇到了类似的问题,这与 .NET Framework 中对 SameSite cookie 处理和 sessionState 的更改有关。
我们的场景是这样的——用户未经身份验证到达,我们在会话中设置一个值,将他们重定向到外部站点进行身份验证,之后通过 HTTP 将用户发送回我们的站点 POST。正是他们返回 POST 导致了这个问题。
我们找到了一些解决方法:
- 恢复到补丁前的 cookie 行为
(https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite#reverting-net-472-behavior)
- 保留 sessionState 的新 cookie 设置并手动设置 cookie(这样做的好处是在会话 cookie 上保留新推荐的默认安全设置)
context.Response.AddHeader("set-cookie", $"cookiename=cookievalue; path=/; SameSite=None; Secure");
我们选择了选项 #2
安装 Windows 更新 2020 后 - HttpHandler 中的 KB4534273 和 2020-KB4535101 会话无法正常工作。
对于 SAML2 身份验证,在 SP 端处理响应时,我会验证响应与发送的请求。但是,在安装更新后处理更新时,我没有可用的会话。 IDP是https,SP是http。
我的处理程序实现接口 IRequiresSessionState
public class Saml2Handler : IHttpHandler, IRequiresSessionState
该解决方案之前有效...
请参阅这篇 Microsoft 文章中的已知问题:https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite#known-issues
我们在修补服务器后遇到了类似的问题,这与 .NET Framework 中对 SameSite cookie 处理和 sessionState 的更改有关。
我们的场景是这样的——用户未经身份验证到达,我们在会话中设置一个值,将他们重定向到外部站点进行身份验证,之后通过 HTTP 将用户发送回我们的站点 POST。正是他们返回 POST 导致了这个问题。
我们找到了一些解决方法:
- 恢复到补丁前的 cookie 行为 (https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite#reverting-net-472-behavior)
- 保留 sessionState 的新 cookie 设置并手动设置 cookie(这样做的好处是在会话 cookie 上保留新推荐的默认安全设置)
context.Response.AddHeader("set-cookie", $"cookiename=cookievalue; path=/; SameSite=None; Secure");
我们选择了选项 #2