Cookie是从不存在的值中复制的

时间:2019-08-28 21:52:24

标签: c# .net wcf cookies

编辑自调试更新以来

根据.net cookie documentation

  

使用HttpResponse.Cookies集合添加cookie后,即使未将响应发送到客户端,该cookie也可立即在HttpRequest.Cookies集合中使用。

我最初的观察是我的cookie似乎不同步。收到IUserIdentity后,我将设置身份验证Cookie,如下所示:

HttpContext.Current.Response
    .RemoveCookie(FormsAuthentication.FormsCookieName);  

HttpContext.Current.Request
    .RemoveCookie(FormsAuthentication.FormsCookieName);

var authCookie = FormsAuthenticationExtensions.GetPersistentAuthCookie(
                FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket), ticket.Expiration)
HttpContext.Current.Response.Cookies.Set(authCookie);

首先,我注意到对于cookie的值我们是不相同的,在观察窗口中检查了相同的cookie之后,我发现相同的cookie的值甚至都不相同:

enter image description here

我遍历了代码,并注意到在未执行代码的语句期间设置了重复的cookie值。 (例如,当进入不相关的功能时,该Cookie现在在请求和响应Cookie中出现了重复的Cookie)

我着手更新代码中对cookie名称的所有引用,以帮助验证可能是什么原因(VM-AT-89001)=>(VM-PAT-89001):

<authentication mode="Forms">
  <forms cookieless="UseUri" name="VM-PAT-89001" requireSSL="true" slidingExpiration="true" timeout="1" />
</authentication>

我清除了所有现有的cookie,删除了临时的ASP.NET文件

  

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ ASP.NET临时文件   C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ASP.NET临时文件

没有IISReset并重置我的计算机。当再次遍历代码时,仍将 OLD Cookie名称添加到请求和响应中。

enter image description here

Cookie的配置不同,但是它们具有相同的到期日期。例如,只有1是仅HTTP。

注意:我已经在github中搜索了整个组织的代码库,并且代码中没有引用旧令牌。

事实上,这种行为发生在代码的不同点,具体取决于我调用的控制器方法,这使我认为这是在单独的线程上发生的。

由于没有引用Cookie名称,这使我认为IIS正在修改cookie,但这更加令人困惑,因为我认为IIS无法访问HttpContext.Current,因为我可以在查看Cookie的同时仍在调试,而不是在之后。

当代码中没有引用cookie名称并且在调试器中的No-Op语句期间发生时,如何将cookie添加到响应中?

编辑 我从应用程序中删除了所有过滤器和模块(除了添加默认的json格式化程序),然后导航到一个不存在的页面,并且仍然将旧令牌添加到了请求中

这怎么发生?

0 个答案:

没有答案