在System.Web.Security.FormsAuthentication的SignOut方法中,ASP.NET团队选择通过将到期日期设置为"1999年10月12日"来使FormsAuth cookie过期.
HttpCookie cookie = new HttpCookie(FormsCookieName, str); cookie.HttpOnly = true; cookie.Path = _FormsCookiePath; cookie.Expires = new DateTime(0x7cf, 10, 12);
1999年10月12日有什么意义?这是一个内幕笑话,还是有一些有效的理由将你的cookie过期设置到该特定日期?
编辑: 下面的理论很有趣,但它们只是猜测.由于Phil, Scott和ASP.NET团队的其他成员都在StackOverflow上,我认为提供赏金会很有趣.希望有人可以追踪原始开发人员并获得权威答案.
获奖者: Scott Hanselman将这一个升级到ScottGu.我真的希望有某种超级秘密的Illuminati-esque意思,但看起来它只是旧的"一年前"的伎俩.
亲爱的华生小学:
1999年10月12日正好是2000年1月1日前的80天.
对于一些人来说,2000年是世界末日
众所周知,世界各地需要80天.
因此,1999年10月12日是环游世界的最后一天.
我们知道互联网已经环绕世界.
因此数据包(以及cookie)也会在世界各地旅行.
1999年10月12日的到期日是数据包可以发送的象征性最后一天.
没有必要在此日期之后发送.
所以这是未过期的象征性日期.
好的,伙计们,我和ASP.NET团队的十几个不同的人交谈过.我们认为编写THAT代码行的开发者已经不见了.我们问顾,他不确定.
来自团队的Stefan Schackow在与Manu Vasandani交谈后说道:
"ASP.NET开发人员被一群狂野的忍者追赶,因此在担心他们的生命的同时完成该功能的压力很大.由于当下的热度(ary激情),快速的决定是使得常数设置为当前时间点,不到一年.不幸的是,做出这个决定的开发人员没有足够快地检查它,尽管这条捷径终于在忍者领导者手中痛苦地死亡Eviscerati Extremus Minus One'."
翻译?日期是编写代码行之前一年的日期.
也许那条线是在1999年10月13日写的,他们选择"昨天"作为一个永远在过去的任意日期.
我不确定它与ASP.NET的开发有什么关系,但这是我的26岁生日!
设置cookie的到期日期时,任何特定日期都没有任何好处.过去的任何日期都会导致浏览器删除cookie.
根据维基百科:
佩尔韦兹穆沙拉夫通过一场不流血的政变从纳瓦兹谢里夫手中夺取巴基斯坦的权力.
六十亿日:世界上宣称的第六十亿人活着诞生了.
罗伯特马斯登希望之死,澳大利亚司法与皇家专员(生于1919年)
美国篮球运动员张伯伦之死(生于1936年)
其中,对我来说最有可能是Wilt the Stilt.也许作者是篮球迷.
1999年10月12日:世界人口达到60亿