我正在使用 Facebook Owin 身份验证,或多或少遵循 Microsoft 示例。我或多或少遵循第一次用户登录,一切正常。但是如果他们退出并重试,似乎之前的 .AspNet.Correlation.Facebook 没有被删除,而是设置为空字符串。所以我对 api/getexternallogin 的下一次调用在 Fiddler 中看起来像这样:
这是当我们生成一个correlationId 并且此时有多个cookie 不是一个显示停止器。在响应中,我将其设置为新的 CorrelationId:
稍后当 facebook 回调“/signin-facebook”时,我们尝试在 ValidateCorrelationId 方法中验证相关性 ID。请求看起来像这样:
所以新的 CorrelationId 已经设置,但是没有值的额外 cookie 意味着当我去 Request.Cookies["ValidateCorrelationId"] 时,它返回空字符串。
我检查了代码,似乎修改此 cookie 的唯一方法是 GenerateCorrelationId 和 ValidateCorrelationId。这些方法的实现可以在这里找到:
奇怪的是,我的浏览器似乎没有发现问题:
任何想法将不胜感激。