人们报告无法登录我们的某个ASP.NET站点.当我检查IIS日志时,看起来它们的浏览器在登录后没有缓存FormsAuthentication cookie.
我认为它不像’用户将浏览器设置为不接受cookie’那样简单,因为:
a)如果一般的cookie不能用于他们的浏览器,那么他们从来没有在这个过程中得到它们 – 例如,ASP.NET会话cookie似乎工作正常.
b)这些通常不是那种甚至不知道如何关闭cookie的用户.
所以我认为它必须是别的东西.除了用户只是将浏览器设置为拒绝cookie之外,哪些问题会导致ASP.NET FormsAuthentication cookie停止工作?
编辑:例如This answer to another question表明有时FormsAuthentication Cookies因为太大而被丢弃 – 也许有人可以对此有所了解?
编辑:我们的一个站点的FormsAuthentication cookie是233个字节 – 有点大吗?可以缩小吗?也许这会有所帮助.
编辑:我注意到代码使用FormsAuthentication.SetAuthCookie()和Response.Redirect()而不是FormsAuthentication.RedirectFromLoginPage() – 这可能是相关的吗?
解决方法
我遇到过类似的问题(不是使用formauthentication cookie,但是使用了一个粘性的loadbalancer cookie),因为服务器没有正确的时间/时区配置,因此有些情况下,cookie的到期日期早于当前时间在用户机器中.
见这里:How do expire values work for cookies and caching?
希望能帮助到你