我有一个FormsAuthentication cookie,它是持久的,并且在开发,测试和生产环境中独立工作。我有一个可以验证,用户对象被创建,身份验证Cookie添加到响应用户:ASP.Net FormsAuthentication重定向丢失重定向和Application_AuthenticateRequest之间的cookie
'Custom object to grab the TLD from the url
authCookie.Domain = myTicketModule.GetTopLevelDomain(Request.ServerVariables("HTTP_HOST"))
FormsAuthentication.SetAuthCookie(authTicket.Name, False)
Response.SetCookie(authCookie)
用户得到处理一点点检查为第一次登录,安全问题等, ,然后用下面的珍闻重定向:
Session.Add("ForceRedirect", "/FirstTimeLogin.aspx")
Response.Redirect("~/FirstTimeLogin.aspx", True)
随着调试中断,我可以验证Cookie集合持有两个不相关的,我为不同的目的和formsauthentication设置cookie身份验证的cookie。然后,在这个过程中,下一步在ApplicationAuthenticateRequest发生在Global.asax:
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
Dim formsCookieName As String = myConfigurationManager.AppSettings("FormsCookieName")
Dim authCookie As HttpCookie = Request.Cookies(formsCookieName)
在这一点上,这一个用户authCookie是什么。我有15,000个其他用户不受这种影响。但是,对于一个用户来说,曲奇消失得无影无踪。我之前已经看到过这种情况,其中有w3wp.exe异常,状态服务器异常和其他与IIS进程相关的异常,但我在事件日志中没有发现异常。 w3wp.exe没有崩溃,状态服务器有一些超时,但它们似乎不相关(经过时间戳验证),并且只发生在这一个域上的这一个用户(该代码在2个不同的顶级域名和大约10个其他子域中使用) 。
我正在调查的一个途径是cookie可能太大。我认为会检查进入响应的cookie的大小,我不认为这会影响它。任何想法为什么请求可能倾倒cookie?
注意:我提到的我设置的辅助cookie也被甩了(而且它非常小)。
编辑注:发生这种情况时,会话令牌不会丢失。但是,由于身份验证cookie丢失,因此会在后续登录时忽略并替换它。
什么是最大Cookie大小? – 2011-09-06 16:04:19
@Elan Hasson:4096字节:http://support.microsoft.com/kb/306070 – 2011-09-06 16:30:11
谢谢 - 我跑了一些测试,以确定长度.. 在这个遗留应用程序中,他们将大部分内容都存储在cookie中。将所有内容移动到会话中解决了问题:) – 2011-09-15 14:37:47