除了关闭Cookie之外,还有什么会导致ASP.NET FormsAuthentication Cookie出现问题?
有人报告说登录我们的ASP.NET网站时遇到问题。当我检查IIS日志时,他们的浏览器在登录后似乎没有缓存FormsAuthenticationCookie 我认为这并不像“用户已将其浏览器设置为不接受cookies”那么简单,因为:除了关闭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
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第二天到期?