我需要检测请求 cookie 值是否与响应 cookie 值不同。

它并不那么容易:

if(cookiesArePresent)
{
    bool isDifferent = HttpContext.Current.Response.Cookies[".ASPXANONYMOUS"].value == HttpContext.Current.Response.Cookies[".ASPXANONYMOUS"].value;
}

但我读到更改 Response.Cookies 会更改 Request.Cookies。这意味着如果 HttpContext.Current.Response.Cookies[".ASPXANONYMOUS"] 发生更改,它们始终相同。有一个简单的方法可以解决这个问题吗?

http://chance.lindseydev.com/2009/04/aspnet-httprequestcookies-and.html

有帮助吗?

解决方案

如果您使用Reflector检查System.Web.Security.AnonymousIdentificationModule,您可以看到匿名cookie仅在PostAuthenticateRequest中读取/写入。

因此,如果您怀疑某些内容有问题,请编写一个简单的 HttpModule,在 AuthenticateRequest 期间读取 cookie,并将其与您在 AuthorizeRequest 中获得的值进行比较。

有关请求生命周期的更多信息,请参阅 探索 Web.config - system.web/httpModules 真的是你的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top