如何检测请求和响应 cookie 是否不同?
-
20-09-2019 - |
题
我需要检测请求 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 真的是你的。
不隶属于 StackOverflow