【问题标题】:FormsAuthentication cookie not sent by browser when clicking external links单击外部链接时浏览器未发送 FormsAuthentication cookie
【发布时间】:2015-09-18 13:45:06
【问题描述】:

我们注意到,对于我们网站的一些用户来说,如果他们从外部来源(特别是 Outlook 和 MS Word)跟踪到网站的链接,他们会以这样一种方式到达网站,即用户。 IsAuthenticated 是假的,即使他们仍然在其他选项卡中登录。

经过数小时的诊断,似乎是因为有时单击外部链接时未发送 FormsAuthentication cookie。如果我们在 Fiddler 中进行检查,我们会看到在网站内单击的链接的标题与单击 Word 文档或电子邮件中的链接所产生的标题不同。 cookie 似乎没有任何问题(路径为“/”,没有域,以及未来的到期日期)。

这是正在设置的 cookie:

Set-Cookie: DRYXADMINAUTH2014=<hexdata>; expires=Wed, 01-Jul-2015 23:30:37 GMT; path=/

这是从内部链接发送的请求:

GET http://domain.com/searchresults/media/?sk=creative HTTP/1.1
Host: domain.com    
Cookie: Diary_SessionID=r4krwqqhaoqvt1q0vcdzj5md; DRYXADMINAUTH2014=<hexdata>;

这是从外部(Word)链接发送的请求:

GET http://domain.com/searchresults/media/?sk=creative HTTP/1.1
Host: domain.com
Cookie: Diary_SessionID=cpnriieepi4rzdbjtenfpvdb

请注意,第二个请求中缺少 .NET FormsAuthentication 令牌。该问题似乎不受设置为默认浏览器的影响,并且在 Chrome 和 Firefox 中都会发生。

这是正常/预期的行为,还是我们可以解决这个问题?

【问题讨论】:

标签: asp.net cookies forms-authentication


【解决方案1】:

原来这是 Microsoft Word、Outlook 和其他 MS Office 产品的一个已知问题:

见:Why are cookies unrecognized when a link is clicked from an external source (i.e. Excel, Word, etc...)

总结:Word 尝试打开 URL 本身(如果它是 Office 文档),但由于没有身份验证 cookie 而被重定向。由于 Word 中的错误,它会错误地尝试在操作系统的默认浏览器中打开重定向的 URL,而不是原始 URL。如果您监视 Fiddler 中的“进程”列,则很容易从链接文章中看到确切的行为:

【讨论】:

    猜你喜欢
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多