除了关闭Cookie之外,还有什么会导致ASP.NET FormsAuthentication Cookie出现问题?

除了关闭Cookie之外,还有什么会导致ASP.NET FormsAuthentication Cookie出现问题?,asp.net,cookies,formsauthentication,Asp.net,Cookies,Formsauthentication,有人报告说登录我们的ASP.NET网站时遇到问题。当我检查IIS日志时,他们的浏览器在登录后似乎没有缓存FormsAuthenticationCookie 我认为这并不像“用户已将其浏览器设置为不接受cookies”那么简单,因为: a) 如果Cookie通常不适用于他们的浏览器,那么他们在这个过程中就永远不会达到他们所能达到的程度——例如,ASP.NET会话Cookie似乎工作正常。 b) 这些用户通常都不知道如何关闭cookies 所以我想一定是别的原因。除了用户简单地将浏览器设置为拒绝Co

有人报告说登录我们的ASP.NET网站时遇到问题。当我检查IIS日志时,他们的浏览器在登录后似乎没有缓存FormsAuthenticationCookie

我认为这并不像“用户已将其浏览器设置为不接受cookies”那么简单,因为:
a) 如果Cookie通常不适用于他们的浏览器,那么他们在这个过程中就永远不会达到他们所能达到的程度——例如,ASP.NET会话Cookie似乎工作正常。
b) 这些用户通常都不知道如何关闭cookies

所以我想一定是别的原因。除了用户简单地将浏览器设置为拒绝Cookie之外,什么样的问题会导致ASP.NET FormsAuthentication Cookie停止工作

编辑:例如,建议有时候FormsAuthenticationCookies会因为太大而被丢弃——也许有人能对此有所了解

编辑:我们其中一个站点的FormsAuthenticationCookie是233字节,这有点大吗?它能变小些吗?也许那会有帮助


编辑:我注意到代码使用了
FormsAuthentication.SetAuthCookie()
Response.Redirect()
而不是
FormsAuthentication.RedirectFromLoginPage()
-这可能相关吗?

用户是否可能通过两个不同的域访问您的Web服务器?例如,如果我转到www.foo.com并获取身份验证cookie,然后重定向到www.bar.com,发送到www.bar.com的请求肯定不会包含www.foo.com设置的cookie

如果将cookie设置为htp://login.foo.com,然后重定向到htp://content.foo.com. 但是,我相信cookie可以使用通配符进行配置,以便应用于*.foo.com


编辑:故意拼错了“http”,因此此答案中没有实际可点击的垃圾链接。:)

有一个空闲超时——他们是否登录,然后暂时不做任何事情,然后再次尝试访问该站点?你可以检查一下。并且,查看超时是否设置为滑动超时(例如,上次请求后20分钟)或固定超时(例如,登录后20分钟)。我认为滑动超时不是默认设置。

如果您的站点在web场中运行,您可能需要在所有服务器上设置相同的超时,或者如果用户切换服务器,则可能无法解密身份验证票证


RedirectFromLoginPage()
SetAuthCookie
以及
Response.Redirect()
之间的区别在于,如果Cookie被禁用,则第一种方法也有效(事实上,它使用一个查询字符串参数来跟踪经过身份验证的用户)。

尝试以下步骤

我写了这么长的回信,但如果你密切关注,你很有可能找到根本原因

隔离根本原因是这里的关键。一旦你弄清楚为什么会发生这样的事情,解决这个问题就相当简单了

拉胡尔


可能是Web服务器名称或DNS名称的一部分包含下划线吗

例如:

www2_http.mydomain.com

我记得在某个开发阶段遇到过这个问题,在这个阶段,会话不会正常进行。从计算机域名中删除下划线为我解决了这个问题


关于

我也遇到过类似的问题(不是FormsAuthenticationCookie,而是sticky loadbalancer cookie),因为服务器没有正确的时区配置,所以有些情况下cookie过期日期早于用户计算机中的当前时间

请看这里:


希望有帮助

您是否使用多个域与同一web应用程序进行对话?请记住,cookie是特定于域的,www.mydomain.com www.mydomain.net my.domain.net


黑暗中的刺刀,您的web中是否有机器密钥。配置?

谢谢。这确实可能会导致一个表单验证问题,但这不是我问题的原因。老鼠-简单的答案就这么多了,嗯?如果你确实找到了根本原因,请把它作为答案贴在这里——现在我很好奇。谢谢。这确实可能会导致formsauthentication问题,但这不是我的问题的原因。这里也有同样的问题,只是客户的机器时区设置不正确。你怎么解决这个问题cookie第二天到期?